当前位置:网站首页>The problem of 1 pixel border on the mobile terminal
The problem of 1 pixel border on the mobile terminal
2022-04-23 20:27:00 【Yunmo - brother Kuang's blog】
Mobile 1 Pixel border problem
----- If the screen resolution of our mobile phone is relatively high , It's a double screen or triple screen , If we write on the page border-bottom: 1px; What we write at this time is 1px, But it's actually css Pixels , Not physical pixels , If we watch carefully , On a double or triple screen, it's not actually 1 Individual physical pixels , It's the height of two physical pixels or three pixels , In order to solve the problem of multiple screen 1 The problem that pixel borders will be displayed as multi-pixel borders , Need to introduce a solution , This scheme is a css file
Here's this css Source code of the document
@charset "utf-8";
.border, .border-top, .border-right, .border-bottom, .border-left, .border-topbottom, .border-rightleft, .border-topleft, .border-rightbottom, .border-topright, .border-bottomleft {
position: relative;
}
.border::before, .border-top::before, .border-right::before, .border-bottom::before, .border-left::before, .border-topbottom::before, .border-topbottom::after, .border-rightleft::before, .border-rightleft::after, .border-topleft::before, .border-topleft::after, .border-rightbottom::before, .border-rightbottom::after, .border-topright::before, .border-topright::after, .border-bottomleft::before, .border-bottomleft::after {
content: "\0020";
overflow: hidden;
position: absolute;
}
/* border * because , The border is covered by a pseudo element area at the parent level * so , If there is interaction between children , You need to set up * location And z Axis */
.border::before {
box-sizing: border-box;
top: 0;
left: 0;
height: 100%;
width: 100%;
border: 1px solid #eaeaea;
transform-origin: 0 0;
}
.border-top::before, .border-bottom::before, .border-topbottom::before, .border-topbottom::after, .border-topleft::before, .border-rightbottom::after, .border-topright::before, .border-bottomleft::before {
left: 0;
width: 100%;
height: 1px;
}
.border-right::before, .border-left::before, .border-rightleft::before, .border-rightleft::after, .border-topleft::after, .border-rightbottom::before, .border-topright::after, .border-bottomleft::after {
top: 0;
width: 1px;
height: 100%;
}
.border-top::before, .border-topbottom::before, .border-topleft::before, .border-topright::before {
border-top: 1px solid #eaeaea;
transform-origin: 0 0;
}
.border-right::before, .border-rightbottom::before, .border-rightleft::before, .border-topright::after {
border-right: 1px solid #eaeaea;
transform-origin: 100% 0;
}
.border-bottom::before, .border-topbottom::after, .border-rightbottom::after, .border-bottomleft::before {
border-bottom: 1px solid #eaeaea;
transform-origin: 0 100%;
}
.border-left::before, .border-topleft::after, .border-rightleft::after, .border-bottomleft::after {
border-left: 1px solid #eaeaea;
transform-origin: 0 0;
}
.border-top::before, .border-topbottom::before, .border-topleft::before, .border-topright::before {
top: 0;
}
.border-right::before, .border-rightleft::after, .border-rightbottom::before, .border-topright::after {
right: 0;
}
.border-bottom::before, .border-topbottom::after, .border-rightbottom::after, .border-bottomleft::after {
bottom: 0;
}
.border-left::before, .border-rightleft::before, .border-topleft::after, .border-bottomleft::before {
left: 0;
}
@media (max--moz-device-pixel-ratio: 1.49), (-webkit-max-device-pixel-ratio: 1.49), (max-device-pixel-ratio: 1.49), (max-resolution: 143dpi), (max-resolution: 1.49dppx) {
/* The default value is , No need to reset */
}
@media (min--moz-device-pixel-ratio: 1.5) and (max--moz-device-pixel-ratio: 2.49), (-webkit-min-device-pixel-ratio: 1.5) and (-webkit-max-device-pixel-ratio: 2.49), (min-device-pixel-ratio: 1.5) and (max-device-pixel-ratio: 2.49), (min-resolution: 144dpi) and (max-resolution: 239dpi), (min-resolution: 1.5dppx) and (max-resolution: 2.49dppx) {
.border::before {
width: 200%;
height: 200%;
transform: scale(.5);
}
.border-top::before, .border-bottom::before, .border-topbottom::before, .border-topbottom::after, .border-topleft::before, .border-rightbottom::after, .border-topright::before, .border-bottomleft::before {
transform: scaleY(.5);
}
.border-right::before, .border-left::before, .border-rightleft::before, .border-rightleft::after, .border-topleft::after, .border-rightbottom::before, .border-topright::after, .border-bottomleft::after {
transform: scaleX(.5);
}
}
@media (min--moz-device-pixel-ratio: 2.5), (-webkit-min-device-pixel-ratio: 2.5), (min-device-pixel-ratio: 2.5), (min-resolution: 240dpi), (min-resolution: 2.5dppx) {
.border::before {
width: 300%;
height: 300%;
transform: scale(.33333);
}
.border-top::before, .border-bottom::before, .border-topbottom::before, .border-topbottom::after, .border-topleft::before, .border-rightbottom::after, .border-topright::before, .border-bottomleft::before {
transform: scaleY(.33333);
}
.border-right::before, .border-left::before, .border-rightleft::before, .border-rightleft::after, .border-topleft::after, .border-rightbottom::before, .border-topright::after, .border-bottomleft::after {
transform: scaleX(.33333);
}
}
notes :
I have also shared some small problems and solutions encountered in the development of mobile terminals before , If you are interested, you can go and have a look , Link address attached
Click here , More surprises ! Thank you guys
版权声明
本文为[Yunmo - brother Kuang's blog]所创,转载请带上原文链接,感谢
https://yzsam.com/2022/04/202204210551061497.html
边栏推荐
- R language ggplot2 visualization: ggplot2 visualizes the scatter diagram and uses geom_ mark_ The ellipse function adds ellipses around data points of data clusters or data groups for annotation
- Azkaban recompile, solve: could not connect to SMTP host: SMTP 163.com, port: 465 [January 10, 2022]
- Plato Farm元宇宙IEO上线四大,链上交易颇高
- Investigate why close is required after sqlsession is used in mybatties
- [PTA] l2-011 play with binary tree
- I JS deep copy and shallow copy
- SIGIR'22 "Microsoft" CTR estimation: using context information to promote feature representation learning
- JDBC tool class jdbcconutil gets the connection to the database
- Leetcode dynamic planning training camp (1-5 days)
- Don't bother tensorflow learning notes (10-12) -- Constructing a simple neural network and its visualization
猜你喜欢
Latest investigation and progress of building intelligence based on sati
Customize timeline component styles
Scripy tutorial - (2) write a simple crawler
selenium. common. exceptions. WebDriverException: Message: ‘chromedriver‘ executable needs to be in PAT
Computing the intersection of two planes in PCL point cloud processing (51)
On BIM data redundancy theory
Vscode download speed up
Scrapy教程 - (2)寫一個簡單爬蟲
go-zero框架数据库方面避坑指南
考研英语唐叔的语法课笔记
随机推荐
Customize timeline component styles
PCA based geometric feature calculation of PCL point cloud processing (52)
star
2022 - Data Warehouse - [time dimension table] - year, week and holiday
Latest investigation and progress of building intelligence based on sati
Solution to PowerDesigner's failure to connect to MySQL in x64 system
Plato farm is one of the four largest online IEOS in metauniverse, and the transaction on the chain is quite high
【PTA】L1-006 连续因子
[graph theory brush question-4] force deduction 778 Swimming in a rising pool
Commit and ROLLBACK in DCL of 16mysql
Alicloud: could not connect to SMTP host: SMTP 163.com, port: 25
Wave field Dao new species end up, how does usdd break the situation and stabilize the currency market?
Modeling based on catiav6
An error is reported when sqoop imports data from Mysql to HDFS: sqlexception in nextkeyvalue
Es error: request contains unrecognized parameter [ignore_throttled]
[graph theory brush question-5] Li Kou 1971 Find out if there is a path in the graph
【PTA】L1-002 打印沙漏
DNS cloud school rising posture! Three advanced uses of authoritative DNS
How do BIM swindlers cheat? (turn)
SIGIR'22 "Microsoft" CTR estimation: using context information to promote feature representation learning