【CSS】画出宽度为1像素的线或边框
由于多倍的设计图在移动设备上显示时会将设计图进行缩小到视口宽度,而1px的边框没有随着页面进行缩小而导致效果太粗,想要还原设计图1px的显示效果,因此需要一些方法来实现边框宽度小于1px。
实现方法很多,下面是个人认为比较好的几种
1. 使用伪元素添加边框
通过给为元素设置边框后进行比例缩放。这种方法需要占用一个伪元素,而且代码也比较多。
需要注意的是要设置box-sizing:border-box
来解决元素和伪元素之间有缝隙的问题
div{
position: relative;
width: 2rem;
height: 1rem;
background-color: #bfa;
}
div::before {
position: absolute;
top: 0;
left: 0;
content: " ";
/*单边框效果*/
width: 100%;
display: block;
background-color: #f00;
height: 1px;
transform: scale(1, 0.5);
/*四条边框效果*/
width: 200%;
height: 200%;
box-sizing: border-box; /*记得添加*/
border: 1px solid #f00;
border-radius:5px;
transform-origin: left top;
transform: scale(0.5);
}
2. 使用box-shadow添加边框
这种方法通过设置阴影的扩展半径来实现添加边框,代码量非常少。
可以通过添加给box-shadow设置inset值是边框向内扩展
div {
position: relative;
width: 2rem;
height: 1rem;
background-color: #bfa;
//添加边框
box-shadow: 0 0 0 0.3333px red inset;
}
3. 修改viewport缩放值
根据DPR设置viewport的scale将页面进行缩放,边框宽度直接写1px即可,但是后期如果遇到echarts之类的就会影响样式
DPR=2时,初始缩放0.5; DPR=3时,初始缩放0.333
<meta name="viewport" content="initial-scale=0.5, maximum-scale=0.5, minimum-scale=0.5, user-scalable=no">
【CSS】画出宽度为1像素的线或边框的更多相关文章
- 用HTML+CSS画出一个同心圆
参加web前端校招的同学们经常会遇到这样的面试题:用HTML+CSS画出一个同心圆. 例如: 这道题主要考验的是基础盒模型布局能力和倒圆角属性的巧用. 1.html代码 <body> &l ...
- 用css画出三角形
看到有面试题里会有问到如何用css画出三角形 众所周知好多图形都可以拆分成三角形,所以说会了画三角形就可以画出很多有意思的形状 画出三角形的原理是调整border(边框)的四个方向的宽度,线条样式以及 ...
- 如何用css画出三角形
看到有面试题里会有问到如何用css画出三角形 众所周知好多图形都可以拆分成三角形,所以说会了画三角形就可以画出很多有意思的形状 画出三角形的原理是调整border(边框)的四个方向的宽度,线条样式以及 ...
- 用css画出三角形【转】
看到有面试题里会有问到如何用css画出三角形 众所周知好多图形都可以拆分成三角形,所以说会了画三角形就可以画出很多有意思的形状 画出三角形的原理是调整border(边框)的四个方向的宽度,线条样式以及 ...
- css 画出三角形
技术分享不一定行文累赘 这里说说最简洁的 css 画出三角形 display: inline-block; border: 10px dashed transparent; border-left: ...
- 情人节,教大家使用css画出一朵玫瑰花。
情人节到了,给大家来一朵高端的玫瑰花. 在网上看到的一个canvas实现的玫瑰花,效果很好,但是代码被压缩过,也没有注释,看的云里雾里的. 今天我教大脚用CSS来实现一朵玫瑰花. 先看效果 首先我们画 ...
- CSS画出的各种形状图
利用CSS可以画出各种需要的图形目录[1]矩形[2]圆形[3]椭圆[4]直角三角形[5]正三角形[6]平行四边形[7]梯形[8]六角星[9]六边形[10]五角星简单图形 矩形div{ width: 1 ...
- CSS画出三角形(利用Border)
画出三角形的原理是调整border(边框)的四个方向的宽度,线条样式以及颜色. 如果你将宽度调的足够大,改变不同方向的颜色,你就可以发现盒模型的border是四个梯形一样的线条. div{ width ...
- 用css画出对话框
aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAAAa4AAAFSCAYAAACqpTv4AAAgAElEQVR4nO3deZBU5b3GcUIlVTG3bi
- CSS画出的图
// × 目录 [1]矩形 [2]圆形 [3]椭圆[4]直角三角形[5]正三角形[6]平行四边形[7]梯形[8]六角星[9]六边形[10]五角星 简单图形 矩形 div{ width: 100px; ...
随机推荐
- Jmeter读取Csv文件,字段中有逗号分隔,读取不成功
Jmeter读取Csv文件,字段中有逗号分隔,读取不成功
- A better jump —— 优化游戏中的跳跃
之前一提起角色的跳跃,想当然的想法就是:给角色一个向上的初速,然后由Unity的物理系统接管就好了嘛,这样忽略空气摩擦的影响,根据重力加速度,角色向上跳到最高点的时间和由最高点落下的时间相等,不是很合 ...
- Stm32设置串口300波特率 2400 4800 9600
Stm32设置串口300波特率 本文以串口4为例子: 在APB1为72MHz的时钟频率下,是设置不了300波特率的,原因在于 Tx/Rx baud = fck / (16 * reg_value) ...
- Matlab - 在Figure中调整X轴到x=0,y=0处
原图 调整 选中图像后打开属性编辑器,将X轴位置修改为原点. 结果
- leetcode-1072 Flip Columns For Maximum Number of Equal Rows
Given a matrix consisting of 0s and 1s, we may choose any number of columns in the matrix and flip e ...
- Log4j日志框架使用
Log4j是Apache下的一款开源的日志框架,能够满足我们在项目中对于日志记录的需求.一般来讲,在项目中,我们会结合slf4j和log4j一起使用.Log4j提供了简单的API调用,强大的日志格式定 ...
- 读取远程服务器linux指定目录下文本内容(工具类)
package com.aa.dataadmin.common.utils; import cn.hutool.extra.ssh.JschUtil; import com.jcraft.jsch.C ...
- Android笔记--文本显示
文本显示 设置文本内容 方式一: 在.xml文件中利用android:text属性设置文本 新创建一个.xml文件示范一下: 方式二: 在java代码中调用文本视图对象的setText方法设置文本 还 ...
- Golang 挑战:编写函数 walk(x interface{}, fn func(string)),参数为结构体 x,并对 x 中的所有字符串字段调用 fn 函数。难度级别:递归。
golang 挑战:编写函数 walk(x interface{}, fn func(string)),参数为结构体 x,并对 x 中的所有字符串字段调用 fn 函数.难度级别:递归. 为此,我们需要 ...
- Redis的自增也能实现滑动窗口限流?
限流是大家开发之路上一定会遇到的需求.比如:限制一定时间内,接口请求请求频率:一定时间内用户发言.评论次数等等,类似于滑动窗口算法.这里分享一份拿来即用的代码,一起看看如何利用常见的 Redis 实现 ...