当前位置:   article > 正文

[CSS面试题]如何画0.5px的边框线(详解)_css 0.5px

css 0.5px

往期css3文章

详解 CSS3中最好用的布局方式——flex弹性布局(看完就会)
CSS3基础属性大全
CSS3动画属性 animation详解(看完就会)
CSS3 transform 2D转换之移动 旋转 缩放(详细讲解看完就会)
CSS3 Z—Index 详解
CSS3 positon定位详解(通俗易懂)

目录

思路

            box-shadow阴影实现的思路

             ::after定位伪类实现的思路

            transform 缩放实现的思路

            border-image: linear-gradient 边框线性渐变的思路

答案

            box-shadow阴影实现的答案

           ::after定位伪类实现的答案

            transform 缩放实现的答案

            border-image: linear-gradient 边框线性渐变的答案    

理解

            box-shadow阴影实现的理解

             ::after定位伪类实现的理解

            transform 缩放实现的理解

            border-image: linear-gradient 边框线性渐变的理解    

总结


思路

                首先  直接这样设置

  border: 0.5px solid red;

                0.5px的边框,肯定是不对的,边框大小会向上取整。

            box-shadow阴影实现的思路

                      既然border不能设置小数的边框,那我们能不能找一个属性有相似的效果来替代它呢,当然可以,我们可以用box-shadow属性用阴影达到0.5px的边框效果,box-shadow阴影属性是允许小数值的,我们可以用它达到单条边框和四条边框。

             ::after定位伪类实现的思路

                直接设置伪类元素,设置指定的高度,通过定位来控制位置。

            transform 缩放实现的思路

                        我们可以设置任意大小的边框,改变中心点,通过缩放效果(找好倍率)来达成想要的结果。

            border-image: linear-gradient 边框线性渐变的思路

                         同样设置任意大小的边框,通过渐变属性改变一部分边框的颜色效果,比如将一部分边框融入背景,这样就能得到想要的效果。

答案

                

            box-shadow阴影实现的答案

                     

  1. <style>
  2. div {
  3. box-sizing: border-box;
  4. background-color: blueviolet;
  5. width: 200px;
  6. height: 200px;
  7. margin: 100px auto;
  8. /* border: 1px solid red; */
  9. box-shadow: 0px 0px 0px 0.5px green;
  10. }
  11. </style>
  12. </head>
  13. <body>
  14. <div></div>
  15. </body>

           

           ::after定位伪类实现的答案

                

  1. <style>
  2. div {
  3. position: relative;
  4. box-sizing: border-box;
  5. background-color: blueviolet;
  6. width: 200px;
  7. height: 200px;
  8. margin-top: 10px;
  9. /* box-shadow: 0px 0px 0px 0.5px green; */
  10. }
  11. div::after {
  12. position: absolute;
  13. content: "";
  14. background-color: red;
  15. width: 100%;
  16. height: 0.5px;
  17. bottom: 0px;
  18. }
  19. </style>
  20. </head>
  21. <body>
  22. <div></div>
  23. </body>

                 

            transform 缩放实现的答案

                

  1. <style>
  2. div {
  3. position: relative;
  4. box-sizing: border-box;
  5. background-color: blueviolet;
  6. width: 200px;
  7. height: 200px;
  8. margin-top: 10px;
  9. /* box-shadow: 0px 0px 0px 0.5px green; */
  10. }
  11. div::after {
  12. position: absolute;
  13. content: "";
  14. width: 200%;
  15. height: 200%;
  16. border: 1px solid red;
  17. transform-origin: 0 0;
  18. transform: scale(0.5);
  19. }
  20. </style>
  21. </head>
  22. <body>
  23. <div></div>
  24. </body>

                

            border-image: linear-gradient 边框线性渐变的答案    

                  

  1. <style>
  2. div {
  3. position: relative;
  4. box-sizing: border-box;
  5. background-color: blueviolet;
  6. width: 200px;
  7. height: 200px;
  8. margin-top: 10px;
  9. /* box-shadow: 0px 0px 0px 0.5px green; */
  10. }
  11. div::after {
  12. display: block;
  13. position: absolute;
  14. content: "";
  15. width: 100%;
  16. height: 1px;
  17. bottom: 0px;
  18. background-color: red;
  19. background: linear-gradient(to bottom, transparent 50%, red 50%);
  20. }
  21. </style>
  22. </head>
  23. <body>
  24. <div></div>
  25. </body>

理解

            box-shadow阴影实现的理解

                        这种方法完全借助盒子阴影来达到指定效果,通过0.5px的阴影,让它达到类似0.5px边框的效果。

             ::after定位伪类实现的理解

                        这种方法直接设置0.5px的高度,高度同样允许小数px,我们生成了一个新元素,来改变它的高度,让它充当边框。

            transform 缩放实现的理解

                        利用缩放属性,我们设置一个1px边框,长度和宽度设置为被包裹子元素的两倍,当它缩小0.5的时候,就正好变成了子元素的宽高,1px的边框也缩小了一半变成了0.5px

            border-image: linear-gradient 边框线性渐变的理解    

                         这个其实是第二种属性的复杂版了,没有直接设置0.5px,而是设置了1px1上上面一半透明,来达到0.5px的边框效果,我们也可以直接设置1px的边框,然后同样透明0.5px,这个就不演示了。(这个属性有点复杂 后面会讲一下)

总结

                        第一二 四种没有使用border属性,通过其他属性来达到类似的边框效果,第三种使用了边框然后进行了效果的修改,第四种也有边框效果的变种写法。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/不正经/article/detail/427224
推荐阅读
相关标签
  

闽ICP备14008679号