I am trying to create a 3D switching menu. Since these elements are positioned as absolute, it’s difficult for me to learn data-atrribute, it seems that it adds an extra 1 or 2 pixels at the top and left side in different viewports:
Here's what it looks like on the 1366 X 768 viewport:

Here's what it looks like on the 1024 X 768 viewport:

Here is a view of 480 X 768 px

Here is my CSS:
.demo-3 { z-index: 1; position: relative; } .demo-3 a { margin: 0 18px; overflow: hidden; } .demo-3 a span { background: #314559; display: block; padding: 10px 20px; -webkit-backface-visibility: hidden; backface-visibility: hidden; -webkit-transition:-webkit-transform 0.1s; -moz-transition: -moz-transform 0.1s; -o-transition: -o-transform 0.1s; transition: transform 0.1s; } .demo-3 a::before { content: attr(data-text); right: -20px; width: 100%; height: 100%; color: #314559; background: #fff; z-index: -1; position: absolute; padding: 10px 20px; top: 0; -webkit-backface-visibility: hidden; backface-visibility: hidden; -webkit-transition:-webkit-transform 0.2s; -moz-transition: -moz-transform 0.2s; -o-transition: -o-transform 0.2s; transition: transform 0.2s; -webkit-transform:translateY(-25%); -moz-transform:translateY(-25%); -ms-transform:translateY(-25%); -o-transform:translateY(-25%); transform:translateY(-25%); } .demo-3 a:hover span, .demo-3 a:focus span { -webkit-transform:translateY(100%); -moz-transform:translateY(100%); -ms-transform:translateY(100%); -o-transform:translateY(100%); transform:translateY(100%); } .demo-3 a:hover::before, .demo-3 a:focus::before { -webkit-transform:translateY(0%); -moz-transform:translateY(0%); -ms-transform:translateY(0%); -o-transform:translateY(0%); transform:translateY(0%); }
Here is what I want to achieve:
- I want to fix these extra 1px in all viewports
- How can I create a more three-dimensional view that looks like a 3D field when flipped?
- How to set the height of the green background in all viewports. If you resized the screen, it would look like a green background, briefly, especially on small viewports.
Here's the jsFiddle of my codes: http://jsfiddle.net/52qcj2x0/6/
Any idea how to achieve these two?
user3997246
source share