css3如何做出小于一像素的细线

这次给大家带来css3如何做出小于一像素的细线,css3做出小于一像素的细线的注意事项有哪些,下面就是实战案例,一起来看一下。

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如何做出小于一像素的细线

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

css3如何做出小于一像素的细线

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

css3如何做出小于一像素的细线

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

css3如何做出小于一像素的细线

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

说明:

推荐这种写法,这是百度糯米移动站的做法(如果没改版的话):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如何做出小于一像素的细线

具体有关 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);}

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

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

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

相信看了本文案例你已经掌握了方法,更多精彩请关注创想鸟其它相关文章!

推荐阅读:

怎么用CSS设置记录用户密码

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

实现卡片3D翻转效果

以上就是css3如何做出小于一像素的细线的详细内容,更多请关注创想鸟其它相关文章!

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

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2025年12月24日 00:37:15
下一篇 2025年12月24日 00:37:22

相关推荐

  • css判断子元素个数

    这次给大家带来css判断子元素个数,css判断子元素个数的注意事项有哪些,下面就是实战案例,一起来看一下。 工作时遇到这样一个问题:根据某元素所包含的子元素个数,分别设置不同的样式,这个用js可以解决,不过个人认为用css解决可能更简单一点。这也正好加深了我对css选择器的理解和运用。demo如下:…

    2025年12月24日 好文分享
    000
  • CSS的定位属性详解

    这次给大家带来CSS的定位属性详解,使用CSS定位属性的注意事项有哪些,下面就是实战案例,一起来看一下。 CSS的定位属性有三种,分别是绝对定位、相对定位、固定定位。 position: absolute; position: relative; position: fixed; 下面逐一介绍。 相…

    2025年12月24日 好文分享
    000
  • CSS实现波浪移动

    这次给大家带来CSS实现波浪移动,CSS实现波浪移动的注意事项有哪些,下面就是实战案例,一起来看一下。 在某些页面上常常看到波浪的效果,虽然只有装饰的作用,但是却让页面看上去更生动了,同时某些情况下也能起到进度条的作用,而波浪的形式却比普通进度条更美观有趣。 如果想要实现波浪的效果,作者想到的第一个…

    2025年12月24日
    000
  • 你必须要知道的CSS三大特性

    这次给大家带来你必须要知道的css三大特性,使用css三大特性的注意事项有哪些,下面就是实战案例,一起来看一下。 CSS三大特性 : 继承,层叠,优先级 一. 继承性 1.什么是继承性? 作用: 给父元素设置一些属性, 子元素也可以使用, 这个我们就称之为继承性 立即学习“前端免费学习笔记(深入)”…

    好文分享 2025年12月24日
    000
  • CSS的显示模式如何使用

    这次给大家带来css的显示模式如何使用,使用css的显示模式的注意事项有哪些,下面就是实战案例,一起来看一下。 一. 标签补充  div 和s pan 1.什么是div? 作用: 一般用于配合css完成网页的基本布局 2.什么是span? 作用: 一般用于配合css修改网页中的一些局部信息 3.di…

    好文分享 2025年12月24日
    000
  • CSS的背景与精灵图

    这次给大家带来css的背景与精灵图,使用css的背景与精灵图的注意事项有哪些,下面就是实战案例,一起来看一下。 1.如何设置标签的背景颜色? 在CSS中有一个background-color:属性, 就是专门用来设置标签的背景颜色的 取值: 具体单词  rgb rgba 十六进制 立即学习“前端免费…

    好文分享 2025年12月24日
    000
  • HTML与CSS的盒子模型

    这次给大家带来html与css的盒子模型,使用html与css的盒子模型的注意事项有哪些,下面就是实战案例,一起来看一下。 一.边框 (上) 1.什么边框? 边框就是环绕在标签宽度和高度周围的线条 2.边框属性的格式 立即学习“前端免费学习笔记(深入)”; 2.1连写(同时设置四条边的边框)bord…

    2025年12月24日
    000
  • CSS实现宽高等比布局的代码

    宽度是高度的两倍(等比缩放)实现思路: 以父级元素为基准, 子级 width:100%; (也就是父级宽度的100%), padding-top:50% (也就是父级宽度的50%,根据css规范, padding用百分比表示的话, padding: 100%等于父元素的宽度); 为什么不直接`wid…

    2025年12月24日
    000
  • CSS实现数字标签样式

    大家在逛购物网站或者小说网站的时候都会发现,有商品或小说封面图旁边都有排名或者受欢迎等标志,那么我们今天就来讲一下是如何实现这些标志的吧! CSS实现排行榜标签样式   即:    主要分以下几步介绍我的实现过程: 初始实现方法(不成功) 后续实现方法(成功) 立即学习“前端免费学习笔记(深入)”;…

    2025年12月24日 好文分享
    000
  • css实现商品封面图向上浮动方法详细讲述

    本篇文章讲述了css如何实现商品封面图触摸向上浮动,不了解css如何实现商品封面图触摸向上浮动同学,我们一起来看看本篇文章吧!、 今天在写css时需要实现:当鼠标悬停在由图片和介绍组成的超链接时,榴莲向上浮动的效果。 我在实现这个效果时思路分为以下几步: 鼠标悬停 图片移动 下方元素绝对定位 立即学…

    2025年12月24日
    000
  • CSS实现分隔线的多种方法详细讲解

    本篇文章讲述了css如何实现分隔线的多种方法,我们在写前端页面的时候分隔线可以起到美观作用,css实现分隔线的方法有多种,那么我们就一起来看看使用css如何实现分隔线更美观点吧! 单个标签实现分隔线: html: 小小分隔线 单标签实现 css: .demo_line_01{ padding: 0 …

    好文分享 2025年12月24日
    000
  • css实现盒子模型详细讲解

     本篇文章讲述了css实现盒子模型,大家对css实现盒子模型不了解的话或者对css实现盒子模型感兴趣的话那么我们就一起来看看本篇文章吧, 好了废话少说进入正题吧 盒子模型是html+css中最核心的基础知识,理解了这个重要的概念才能更好的排版,进行页面布局。下面是自己积累和总结的关于css盒子模型的…

    2025年12月24日 好文分享
    000
  • CSS3之mix-blend-mode/background-blend-mode简介

    本文主要和大家分享css3出现了两个与混合模式有关的属性,mix-blend-mode和background-blend-mode.希望能帮助到大家。 一、关于混合模式 熟悉PS的人都应该知道混合模式: SVG以及Canvas中也有混合模式,本质上都是一样的。 下面是一些常见的混合模式的算法: 立即…

    2025年12月24日 好文分享
    000
  • css3的聊天气泡样式

    这次给大家带来css3的聊天气泡样式,做出css3的聊天气泡样式的注意事项有哪些,下面就是实战案例,一起来看一下。 在聊天的场景中,聊天内容需要用到气泡修饰,如下图。下面一一讲解。 图片式: 第一个样式是京东客服,气泡的圆角和钩子都是用了图片。使用了一个table组合成了一个圆角的框框。lm样式拼出…

    2025年12月24日
    000
  • 详谈css样式初始化

    这次给大家带来详谈css样式初始化 ,css的样式初始化注意事项有哪些,下面就是实战案例,一起来看一下。      在网站编写的时候,由于许多的标签会有默认存在的样式,比如P标签的外边距,a标签的下划线等等,通常我们会把这些默认样式去除,以免在后面的编写中造成诸多的不变。 1、拥有默认内外边距的标签…

    好文分享 2025年12月24日
    000
  • css的渐变颜色

    这次给大家带来css的渐变颜色,使用css渐变颜色的注意事项有哪些,下面就是实战案例,一起来看一下。 background: -o-linear-gradient(left, #109afd, #3ed3fe);background: -moz-linear-gradient(left, #109a…

    好文分享 2025年12月24日
    000
  • VUE如何使用anmate.css

    这次给大家带来vue如何使用anmate.css,vue使用anmate.css的注意事项有哪些,下面就是实战案例,一起来看一下。 注意: 1、在ajax请求到数据后,先给res返回的数据添加属性anmate = false,千万不要this.planData = res.lists 然后再给thi…

    好文分享 2025年12月24日
    000
  • 前端入门之css3

    我们知道,如果你想学前端,那css3与html5是最基础也是最先学习的一门知识,今天就给大家带来前端入门之css3,让我们一起来看一下 废话不多说直接正题 什么是css3 css3形成页面的关键要素CSS3被拆分为”模块”。旧规范已拆分成小块,还增加了新的。一些最重要CSS3…

    好文分享 2025年12月24日
    000
  • Css3实现弹性盒模型应用

    作为 css3 规范的一部分,弹性盒布局模型可以在很多典型的场景中简化完成布局所需的 css 代码。该布局模型也提供了很多实用的特性来满足常见的布局要求,包括对容器中条目的排列、对齐、调整大小和分配空白空间等。弹性盒布局模型可以作为 web 开发人员工具箱中的一个很好的工具。  1、css清除浮动。…

    2025年12月24日 好文分享
    000
  • CSS记录用户密码实现代码分享

    本文主要和大家介绍了css 记录用户密码的方法的相关资料,简单的css代码,甚至不符合图灵完备的语言,但是也能成为一些攻击者的工具,下面简单介绍一下如何使用css去记录用户的密码。但是这些css脚本会出现在第三方css库中,所以使用第三方css库也需要谨慎,确保代码安全。直接上代码解析: input…

    2025年12月24日
    000

发表回复

登录后才能评论
关注微信