国产成人精品亚洲777人妖,欧美日韩精品一区视频,最新亚洲国产,国产乱码精品一区二区亚洲

您的位置:首頁技術(shù)文章
文章詳情頁

html - 關(guān)于CSS實(shí)現(xiàn)border的0.5px設(shè)置?

瀏覽:149日期:2023-01-12 16:42:20

問題描述

網(wǎng)上看到的代碼,有些不理解的地方:

.custom-border{ width:200px; margin:10px auto; height:100px; border:1px solid #333; background-color:#eee; padding:10px;}.scale-border{ margin:10px auto; height:100px; position:relative; padding:10px; width: 200px;}.border{ -webkit-transform:scale(0.5); transform:scale(0.5); position:absolute; border:1px solid #333; top:-50%; right:-50%; bottom:-50%; left:-50%; border-radius: 10px; background-color:#eee;}.content{ position:relative; z-index:2;}<p class='custom-border border-color'>邊框?qū)挾?px</p><p class='scale-border'> <p class='content'>邊框?qū)挾?.5px</p> <p class='border border-color'></p></p>

請問在這里CSS代碼中的

top:-50%;right:-50%;bottom:-50%;left:-50%;

是什么意思?實(shí)現(xiàn)這個(gè)0.5px的邊框的原理是什么?btw,transform:scale是不是在項(xiàng)目中挺少用到的?百度了好久關(guān)于scale 的詳細(xì)用法甚少。。

問題解答

回答1:

其實(shí)主要是scale(0.5)把它縮小到0.5px;然后利用

top:-50%;right:-50%;bottom:-50%;left:-50%;

去把它變大到原來的大小。但是這個(gè)變大并不影響邊框的大小;

回答2:

首先 transform:scale(0.5); 表示縮放1/2的意思,就會變成這樣(黑色外邊框是特意加上去對比的):

html - 關(guān)于CSS實(shí)現(xiàn)border的0.5px設(shè)置?

因?yàn)閷τ诳s放而言是整體縮小。所以呢,縮小以后,又需要把她拉回原來的大小,這樣看起來才像0.5px的邊框,即:

top:-50%;right:-50%;bottom:-50%;left:-50%;

感覺多加一個(gè) <p> 來表示0.5px的大小,并不優(yōu)雅,于是改寫這樣:

.custom-border{ width:200px; margin:10px auto; height:100px; border:1px solid #333; background-color:#eee; padding:10px;}.scale-border{ margin:10px auto; height:100px; position:relative; padding:10px; width: 200px;}.scale-border::after{ content: ’ ’; -webkit-transform:scale(0.5); transform:scale(0.5); position:absolute; border:1px solid #333; top:-50%; right:-50%; bottom:-50%; left:-50%; border-radius: 10px; background-color:#eee;}.content{ position:relative; z-index:2;}

<p class='custom-border border-color'>邊框?qū)挾?px</p><p class='scale-border'> <p class='content'>邊框?qū)挾?.5px</p></p>回答3:

是為了放大到原始.scale-border的兩倍大小。因?yàn)?border是絕對定位(position:absolute;),所以其定位是根據(jù)其最近的非position:static來定的,而.scale-border是相對定位的(position:relative;),所以

top:-50%;right:-50%;bottom:-50%;left:-50%;

就是.border以.scale-border的中心為中心,放大到兩倍,然后再ransform:scale(0.5);縮小到1/2,那就和.scale-border一樣大小了。此時(shí)的 1px border,就變?yōu)?0.5px。

transform應(yīng)該可以放心使用。

回答4:

兄弟,看這個(gè)你就明白了。https://developer.mozilla.org...

標(biāo)簽: HTML
相關(guān)文章:
主站蜘蛛池模板: 钟山县| 牟定县| 正镶白旗| 南宫市| 平远县| 慈利县| 崇仁县| 惠水县| 西宁市| 留坝县| 玉山县| 石首市| 武安市| 容城县| 侯马市| 泉州市| 鹤庆县| 雷山县| 花莲县| 九江市| 渭南市| 景洪市| 明水县| 札达县| 上林县| 靖西县| 贵港市| 莲花县| 松阳县| 开化县| 潞城市| 沅陵县| 株洲县| 宁南县| 西贡区| 呼玛县| 镇坪县| 东阳市| 威远县| 阿拉善盟| 商洛市|