11 Star 37 Fork 20

Baryy / You-need-to-know-css

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
one-pixel-line.md 4.56 KB
一键复制 编辑 原始数据 按行查看 历史
catchonme 提交于 2018-11-16 09:04 . 修复left 1px 不显示的问题

1px 线/边

?> 背景知识::point_right: box-shadow, transform, @media

box-shadow + transform 实现 1px 线条

<script v-pre type="text/x-template" id="one-pixel-line"> <style> main { width: 100%; padding: 52px 29px; display: flex; justify-content: center; } span.one-pixel-line { width: 229px; position: relative; } span.one-pixel-line::after { content: ''; width: 229px; position: absolute; bottom: 0; left: 0; box-shadow: 0 0 0 1px #b4a078; transform-origin: 0 bottom; transform: scaleY(.5) translateZ(0); } @media (min-resolution: 2dppx) { span.one-pixel-line.shadow::after { box-shadow: 0 0 0 .5px #b4a078; } } @media (min-resolution: 3dppx) { span.one-pixel-line.shadow::after { box-shadow: 0 0 0 .333333px #b4a078; } } </style> <script> </script> </script>

border + 伪元素 + transform 实现 1px 独立边框 :thumbsup:

<script v-pre type="text/x-template" id="one-pixel-line-border"> <style> main { width: 100%; padding: 52px 29px; display: flex; justify-content: center; } span.one-pixel-line { display: block; width: 229px; height: 229px; position: relative; } span.one-pixel-line.right, span.one-pixel-line.bottom, span.one-pixel-line.left { margin-left: -229px; } span.one-pixel-line::before, span.one-pixel-line::after { content: ""; display: block; position: absolute; transform-origin: 0 0; } /* top line */ span.one-pixel-line.top::before { width: 100%; top: 0; left: 0; border-top: 1px solid #b4a078; transform-origin: 0 top; } @media (min-resolution: 2dppx) { span.one-pixel-line.top::before { width: 200%; transform: scale(.5) translateZ(0); } } @media (min-resolution: 3dppx) { span.one-pixel-line.top::before { width: 300%; transform: scale(.333333) translateZ(0); } } /* right line */ span.one-pixel-line.right::after { height: 100%; top: 0; right: 0; border-right: 1px solid #b4a078; transform-origin: right 0; } @media (min-resolution: 2dppx) { span.one-pixel-line.right::after { height: 200%; transform: scale(.5) translateZ(0); } } @media (min-resolution: 3dppx) { span.one-pixel-line.right::after { height: 300%; transform: scale(.333333) translateZ(0); } } /* bottom line */ span.one-pixel-line.bottom::after { width: 100%; bottom: 0; left: 0; border-bottom: 1px solid #b4a078; transform-origin: 0 bottom; } @media (min-resolution: 2dppx) { span.one-pixel-line.bottom::after { width: 200%; transform: scale(.5) translateZ(0); } } @media (min-resolution: 3dppx) { span.one-pixel-line.bottom::after { width: 300%; transform: scale(.333333) translateZ(0); } } /* left line */ span.one-pixel-line.left::before { height: 100%; top: 0; left: 0; border-left: 1px solid #b4a078; transform-origin: 0 left; } @media (min-resolution: 2dppx) { span.one-pixel-line.left::before {s height: 200%; transform: scale(.5) translateZ(0); } } @media (min-resolution: 3dppx) { span.one-pixel-line.left::before { height: 300%; transform: scale(.333333) translateZ(0); } } </style> <script> </script> </script>

浏览器支持

<iframe src="https://caniuse.bitsofco.de/embed/index.html?feat=css-media-resolution&periods=future_1,current,past_1,past_2,past_3&accessible-colours=false" frameborder="0" width="100%" height="432px"></iframe> <iframe src="https://caniuse.bitsofco.de/embed/index.html?feat=css-boxshadow&periods=future_1,current,past_1,past_2,past_3&accessible-colours=false" frameborder="0" width="100%" height="409px"></iframe> <iframe src="https://caniuse.bitsofco.de/embed/index.html?feat=transforms3d&periods=future_1,current,past_1,past_2,past_3&accessible-colours=false" frameborder="0" width="100%" height="453px"></iframe>
CSS
1
https://gitee.com/lhammer/You-need-to-know-css.git
git@gitee.com:lhammer/You-need-to-know-css.git
lhammer
You-need-to-know-css
You-need-to-know-css
master

搜索帮助