css3做0.5px的细线实例分享

这篇文章主要介绍了使用css30.5px的细线的示例代码的相关资料,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧

Webapp中的CSS3实现 0.5px的细线

感觉很长时间没写过博客了,最近生活还算稳定,过得较为充实,所以又要开始写写东西了,一个是为了做些记录,是怕自己某一天,忘记了,回头翻翻博客,就会再次的拾起来,记忆,就是这样。

曾看过淘宝,京东,易迅,一号店等等电商的移动端网站,这些大的电商站的共同特点是做的精致,用户体验良好,其中在布局方面 , 0.5px的线看上去就比1px的线看上去要精致很多。

方法一:使用渐变来做

立即学习“前端免费学习笔记(深入)”;

html代码:

登录后复制登录后复制登录后复制登录后复制

css代码:

.bd-t{  position:relative;}.bd-t::after {  content: " ";  position: absolute;  left: 0;  top: 0;  width: 100%;  height: 1px;  background-image: linear-gradient(0deg, transparent 50%, #e0e0e0 50%);}

登录后复制

Be careful ! 注意此处有坑!!!:

对于不同浏览器的兼容,我们需要使用不同的前缀如:

-webkit-linear-gradient-ms-linear-gradient -o-linear-gradient

登录后复制

坑就在这些前缀里: 我们把代码里的height 1px 变成 100px , 参数同为 0deg, transparent 50%, #e0e0e0 50% 并使用最新版的chrome来测试 。

linear-gradient 有如下结果:

css3做0.5px的细线实例分享

经过一系列的测试总结,我们可以推理出下面的渐变方式:

css3做0.5px的细线实例分享

webkit-linear-gradient 的代码效果图如下:

css3做0.5px的细线实例分享

经总结,我们看到-webkit前缀的渐变方式为:

css3做0.5px的细线实例分享

其他的前缀如果用到,还请小伙伴们自己来尝试填坑!

说明:

推荐这种写法,这是百度糯米移动站的做法(如果没改版的话):http://m.nuomi.com/ ,从上述代码的描述中,可以看到,为了实现盒子顶部边框0.5px的伪代码:border-top:0.5px solid #e0e0e0; 的效果,使用after,作为一个钩子,宽度100%,高度1px,背景渐变,一半透明,一半有颜色,这么干是可以的。同理,底部,左边和右边的细线,都是同一个道理了。当然,如果需要组合使用,盒子之间的嵌套使用,也是可以的,或者你有自己的想法(当然做法有很多种!)…

方式二: 使用缩放

html代码:

登录后复制登录后复制登录后复制登录后复制

css代码:

.bd-t{  position:relative;}.bd-t:after{  content: "  ";  position: absolute;  left: 0;  top: 0;  width: 100%;  height: 1px;  background-color: #e0e0e0;  /* 如果不用 background-color, 使用 border-top:1px solid #e0e0e0; */  -webkit-transform: scaleY(.5);  transform:scaleY(.5);}

登录后复制

说明

这是实现盒子上边框0.5px的做法, 不是很推荐这种做法,因为经过测试,一些手机端浏览器显示的不是太好。这种实现的原理是: 在Y轴方向上,压缩一半。就像上面注释的那样。
如果你觉得效果不太好,这里有一个 fallback or workaround, whatsoever: 就是上面注释掉的那种做法:可以尝试使用border-top:1px solid #e0e0e0; 代替background-color的做法,京东就是这么做的(如果没改版的话): http://m.jd.com/

方式二的拓展 : 如果要实现四周全是0.5px的线条的话 :

html代码:

登录后复制登录后复制登录后复制登录后复制

css代码:

  .bd-all{      position:relative;  } .bd-all:after{      content: "  ";      position: absolute;      left: 0;      top: 0;      z-index:-1;      width: 200%;      height:200%;      border:1px solid #e0e0e0;      -webkit-transform-origin: 0 0;      transform-origin: 0 0;      -webkit-transform: scale(.5, .5);      transform: scale(.5, .5); }

登录后复制

说明 :

这是实现一个盒子四周0.5px的做法, 如果加入border-radius圆角效果,会发现,有些手机会有圆角发虚的情况,不过影响不是很大。如果有两个盒子,上面一个盒子没有边框效果,下面盒子有边框效果,两个盒子一样宽,上下在一起的布局方式,你会发现,在手机上有时候会对不齐… 错开了0.5px,原因已经很明了了…还有那个z-index ,可以根据不同需求来调整使用,如果可以的话,不使用也是可以的。

方式三: 使用background-image和css3的九宫格裁减

京东之前是这么做的,现在已经不被使用了。具体做法,请看下面demo结构:

├─demo/ ························ demo 目录        └─┬─ test.html  ··············· test.html 文件        └─── pic.png ·················· png 图片文件

登录后复制

在test.html 中 有如下关键代码:

html 结构:

登录后复制登录后复制登录后复制登录后复制

css 结构:

.bd-t{   position: relative;}.bd-t::after {content: " ";position: absolute;left: 0;top: 0;width: 100%;border-top: 1px solid transparent;/* 下面用 stretch 和 round 都可以 */border-image: url('pic.png') 2 1 1 1 stretch; -webkit-border-image: url('pic.png') 2 1 1 1 stretch;}

登录后复制

而 pic.png 的九宫格切法,如下图:

css3做0.5px的细线实例分享

具体有关 border-image 的用法,网上有很多:

w3c 上的这个讲的不是很具体:http://www.jb51.net/w3school/cssref/pr_border-image.htm

在 MDN 上 有明确的介绍,并且有很多配图,包括兼容性等等:https://developer.mozilla.org/en-US/docs/Web/CSS/border-image

但是不推荐这种写法,毕竟图片质量比较大,能用代码解决的,不用图片。在这里border-width 是 1px , 但是 背景是有2px的距离,所以在1px的border-top上,显示出有颜色的高度就是0.5px, 同理,底边,左边和右边的0.5px,也都很容易实现。 这个就是css3的魅力体现(这个现在兼容性也不是很好,在一些较低端的安卓浏览器和一些版本的safari 支持的也不是很好)。

方式四 (推荐): weui的实现方式 :

这是一款微信团队开发的UI 组件 详情见: weui , 它的使用方式是这样的:

 

.weui-cell:before{   content: " ";   position: absolute;   left: 0;   top: 0;   right: 0;   height: 1px;   border-top: 1px solid #D9D9D9;   color: #D9D9D9;   -webkit-transform-origin: 0 0;   transform-origin: 0 0;   -webkit-transform: scaleY(0.5);   transform: scaleY(0.5);}

登录后复制

方式五: 使用同周边相似的浅色,利用视觉效果,让用户产生错觉

这个就考验设计师的功力了 :)

其他说明:不是很推荐使用渐变来做 , 在移动设备上可以看到,但在一些浏览器上看不到,不便于调试。

相关推荐:

css3实现冲击波效果

css3绘制一个圆圆的loading转圈动画实例分享

CSS3中transform功能

以上就是css3做0.5px的细线实例分享的详细内容,更多请关注【创想鸟】其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。

发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/2900421.html

(0)
上一篇 2025年3月10日 23:58:23
下一篇 2025年3月10日 23:58:30

AD推荐 黄金广告位招租... 更多推荐

相关推荐

  • CSS样式实现选择框右侧小三角实例

    本文通过实例代码给大家介绍了用css样式写选择框右侧小三角的方法,需要的朋友参考下吧,希望能帮助到大家。 效果图如下所示: 直接上代码! nbsp;html>小三角.up-triangle{width:0px;height:0px;b…

    2025年3月10日
    000
  • 清除css浮动的方法小结

    本文主要介绍了清除css浮动的三种方法小结,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧,希望能帮助到大家。 一,我们为什么要浮动 为什么浮动,为什么要清除浮动,以及清除浮动的方法。在网页布局的时候有时需要元素…

    2025年3月10日 编程技术
    200
  • css3线性渐变入门实例分享

    渐变是是以背景图的形式呈现在页面中的, 渐变的本质是background-image 。在css3中,渐变可以分为线性渐变(linear-gradient)和径向渐变(radial-gradient)。线性渐变是沿着渐变线进行渐变,而径向渐…

    2025年3月10日 编程技术
    200
  • css利用 :before :after 写小三角形实例分享

    本文主要介绍了详解css如何利用 :before :after 写小三角形的相关资料,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧,希望能帮助到大家。 之前写的三角形一直在同一个颜色,没有边框的样式。如下: C…

    2025年3月10日
    200
  • css水平垂直居中的4种实现方法

    本文主要和大家分享css水平垂直居中的4种实现方法,方案中我也给了宽高,但并不是说宽高固定了。而是以为不给宽高无法看到效果。这个方案不固定宽高的是指,用这个方案之后,如果你父元素、子元素的宽高发生了改变,依旧可以保证是水平垂直居中的位置。 …

    编程技术 2025年3月10日
    200
  • CSS命名规范节约Debug时间解答

    本文主要和大家分享css 命名规范可以节约 debug 时间的相关知识,感兴趣的朋友一起看看吧,希望能帮助到大家。debug css 是一种很耗时的操作,如果有良好的命名规范可以节约很多的 debug 时间。   简评:Debug CSS …

    2025年3月10日 编程技术
    200
  • CSS实现Sticky Footer实例教程

    本文主要介绍了css实现sticky footer的示例代码的相关资料,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧,希望能帮助到大家。 所谓 “Sticky Footer”,并不是什么新的前端概念和技术,它指…

    2025年3月10日
    200
  • css3实现圆环进度条方法

    刚开始写这个圆环的时候是参照帖子上给出的css代码代入,然后根据自己的需求改,发现圆环可以完美转动了,但是好像没法用百分比控制,所以放弃了随便copy一个现成的想法,该动动脑子还是有必要的。 实现原理 css实现圆环的方法很多,我看大部分都…

    编程技术 2025年3月10日
    200
  • 关于CSS中重要的BFC详解

    本文我们主要和大家分享关于css中重要的bfc详解,css中有个重要的概念bfc,搞懂bfc可以让我们理解css中某些原本诡异(??)的地方。 1. 简介 在解释BFC之前,先说一下文档流。我们常说的文档流其实分为定位流、浮动流、普通流三种…

    编程技术 2025年3月10日
    200
  • css3的calc在less编译时如果被计算应该如何解决

    这次给大家带来css3的calc在less编译时如果被计算应该如何解决,解决css3的calc在less编译时如果被计算的注意事项有哪些,下面就是实战案例,一起来看一下。 对于前端er来说,Less或Sass已经是一项必备的基本技能,有了这…

    编程技术 2025年3月10日
    200

发表回复

登录后才能评论