一些工作實踐中的css樣式使用,工作實踐css樣式

最近在git上看到了這樣一個文件https://github.com/chokcoco/iCSS,關于css實現的一些很不錯的樣式,所以準備自己總結一下自己項目中用到的一些樣式。愛掏網 - it200.com

一、怎么使用CSS讓圖片水平垂直都居中

在前端開發時我們有時需要讓圖片顯示在頁面的中間位置,但是究竟應該怎么用代碼實現呢?其實很簡單哦

第一步:在頁面中加載一張圖片

img_40508deeaaac9318678617d9caa7249e.png

效果如下

img_1064a75cdeb071c4dd959f0bd1ce02b0.png

然后分別給圖片和圖片的父元素加載樣式

img_2f7d050b8e253e88d4a8704ae3b260eb.png

效果圖

img_550c6013f5ba6d5abcc2881b08485f5e.png

另一種方法:

通過display:table-cell與vertical-align結合

看布局

img_36545873e689a4f105648463c55abadb.png

css樣式

img_7d8c722089ec132f68ec552bff316e81.png

最后的效果

img_2c4c367e228d3d2538c0c4ed444b3e91.png


二、改變 input file的默認樣式

我們在做input文本上傳的時候,html自帶的上傳按鈕比較丑,如何對其進行美化呢?

input file上傳按鈕的美化思路是,先把之前的按鈕透明度opacity設置為0,然后,外層用div包裹,就實現了美化功能。愛掏網 - it200.com

利用jquery的代碼實現如下

html布局

img_7ea800a5a84d6846be8a93a003675cda.png

js

部分代碼

img_31d7f2ad1f3fd21a23a03f5613d32323.png

css部分重點是css部分

img_0cf394e2ecb15f7bb015feef9c088e99.png

在vue中的使用,可以通過數據綁定來實現上傳文件名稱的改變,這里不再多說!

三、移動端1px邊框的實現

在高清屏幕上,border-width:1px;并不是最小邊框,移動端瀏覽器可以顯示的最小顆粒比css中1px還要小

首先看一下在移動端效果對比

img_4c7502d503db2b10b60597fafc7b4cc2.png

具體是通過css實現,代碼如下:

img_f98e6385433aecffa5b1799f56145c59.png

html結構

img_5fa4fd3e00bcd8c6f45be8e4805b1379.png

四、vertical-align的使用

w3c官網說明:vertical-align 屬性定義行內元素的基線相對于該元素所在行的基線的垂直對齊。愛掏網 - it200.com允許指定負長度值和百分比值。愛掏網 - it200.com這會使元素降低而不是升高。愛掏網 - it200.com在表單元格中,這個屬性會設置單元格框中的單元格內容的對齊方式。愛掏網 - it200.com(重點1:行內元素;重點2:單元格內)

vertical-align是為了對齊文本和緊鄰文本的元素。愛掏網 - it200.com盡管如此,你也能在不同場景下使用vertical-align去進行靈活細微的元素對齊工作,而且你并不需要知道元素的具體尺寸。愛掏網 - it200.com

深入了解原因可參考:https://www.jianshu.com/p/71a03b8f6eb6

使用vertical-align的前提條件

vertical-align用于對齊行內級元素。愛掏網 - it200.com行內級元素的display屬性是如下值中的一種:

inline

inline-block

inline-table

行內元素垂直居中或者頂部對齊,底部對齊(以頂部對齊為例)

為了避免由于元素之間莫名產生的空隙,特別設置父元素的font-size的值為0

首先看一下要達到的效果圖(左大圖與右邊文字頂部對齊,另外兩個小圖片與同一行的文字也是頂部對齊,但是看圖貌似是中部對齊,所以可以通過調整右邊文字的行高實現真正的頂部對齊)

img_868af3315071d975b8bc9876b5678084.png

首先看html代碼

img_a98038ddc0e7e47d8189f1525df36b5a.png

看css布局

1.左邊大圖與右邊的布局

img_fb31ae7680b406e7b87b03e6c95c5c7c.png

2.右邊小圖跟標題部分的布局

img_a3952003624b374f5db810188723e6fd.png

3.最下邊icon跟說明部分的布局

img_3101729fd3d86d526112a9916753ab9a.png

對于以上情景的總結如下:

1.vertical-align屬性適用于非塊級元素;

2.同一行內的倆元素,一行元素有固定高度的話,另一個要有等值的行高,然后給其中一個或者多個元素設置vertical-align屬性,若效果不明顯可以通過調整行高來微調;

3.如果布局是

內容內容

可參照w3c官網來學習。愛掏網 - it200.com


五、給父元素設置font-size=0屬性

問題的根源是 inline(a標簽默認是display:inline) 和 inline-block (.list 設置的是 display:inline-block) 是內聯布局,既然是內聯那么就會受空白區域的影響。愛掏網 - it200.com

這是像素級還原設計稿很有用的設置,因為元素節點有文本節點,在縮進代碼時會占據寬度,這么說不好理解,演示如下:

HTML

img_f20b1cfd7e028ed23225d6a476654b44.png

css

img_de6208a48bcb2b7a3559dee30cbdba95.png

理論上box下面的三個div都是30px,剛好在一行顯示,但是實際效果是這樣的:

img_5e9ce8bb43c9019baadffb969306bb3c.png

這就是上文說到的原因,我們在box下添加?font-size:0;?再看看效果

img_4b028ff60342a15dba6ca6a010e61cc2.png

總結:

1、可以看到這才是我們想要的結果,因此在實際開發中,為了更好的還原設計稿,在父元素很有必要設置font-size:0,避免莫名其妙的間距。愛掏網 - it200.com

2、這種情況的另一種解決方式:去掉空白部分。愛掏網 - it200.com(不采用,例子如下:)

img_b9f8bc9d352682a1d4387b3bd0fd4c4a.png

六、CSS控制文字只顯示規定行數,超出部分顯示省略號

1、單行文字超出部分顯示省略號

可以實現超出部分顯示省略號的效果的元素必須是:(1)配置為inline-block或block的元素,或者默認為block的div、p元素;(2)強制不換行white-space:no-wrap;(3)固定寬度;(4)超出部分隱藏 overflow:hidden;(5)超出部分以‘...’結尾text-overflow:ellipsis

img_3b289ffc24f0dcde717af615050fce01.png

2、多行文字超出部分顯示省略

(1)將對象作為彈性伸縮盒子模型顯示display:-webkit-box;(2)從上到下垂直排列子元素,設置伸縮盒子的子元素排列方式 -webkit-box-orient:vertical;(3)-webkit-line-clamp:2,這個屬性不是css的規范屬性,結合上邊兩個屬性,表示顯示的行數(4)超出部分隱藏;(5)超出部分'...'顯示;(6)對元素的是行內元素還是塊級元素不做要求。愛掏網 - it200.com

img_358373b3b7073f5f37fc07606ae5eebf.png

3、對text-overflow:ellipsis,和white-space做一下解釋

(1)text-overflow:ellipsis

text-ellipsis是一個特殊的樣式,有關解釋是這樣的,text-overflow屬性僅是注解,當文本溢出時是否顯示省略標記,并不具備其他的樣式屬性定義。愛掏網 - it200.com要實現溢出時產生省略效果還需要定義:強制文本在一行內顯示(white-space:no-wrap)及溢出內容為隱藏(overflow:hidden),只有這樣才能實現溢出本文顯示省略號的效果

簡單理解就是要把文本限制在一行,肯定這一行的寬度是有限制的(width),并且你的溢出部分要隱藏起來(overflow:hidden),然后出現省略號(text-overflow:ellipsis);

(2)white-space

white-space屬性聲明建立布局過程中如何處理元素中的空白(這里的空白符應該指我們用鍵盤敲入的空格或回車,因為用?或
無論white-space設置什么都會有空格或回車。愛掏網 - it200.com

下面w3c上white-space可能的值:

normal默認,空白會被瀏覽器忽略

pre空白會被瀏覽器保留,其行為方式類似HTML中的

標簽為止

nowrap 文本不會換行,文本會在同一行上繼續,直到遇到
為止。愛掏網 - it200.com

pre-wrap保留空白符序列,但是正常的進行換行。愛掏網 - it200.com

prw-line 合并空白符序列,但是保留換行符;

inherit 規定應該從父元素集成white-space屬性的值

七、純CSS正方形自適應9宮格圖片布局

先看效果圖

img_66c53f88053949f523196c62a6520d44.png

CSS部分

重點是:給image的符合子相對定位,height設置為0,height設置為0,依然可以撐開的黑魔法就是下邊的padding,黑魔法的時刻就是將padding-top或者padding-bottom設置為跟盒子寬度一樣,w3c也提過,當我們給padding設置100%的時候,是相對盒子的寬度設置的百分比,也就是保證了padding值跟盒子的寬度是一致的,所以這個盒子看起來就是一個寬高相等的容器。愛掏網 - it200.com

然后給圖片設置絕對定位,寬度和高度都為100%最終效果完美。愛掏網 - it200.com

img_0f121820b6878663b120802b321fb9d2.png

布局

img_7f360750ff3a5d484429bb208dd67eb3.png

注意點:由于圖片在拉伸或者壓縮知乎會變形,所以要給img標簽添加屬性:object-fit:cover屬性,防止圖片變形。愛掏網 - it200.com

八、清除浮動(最常用的方式)

父容器使用偽類:after跟zoom

這種方式是最推薦的,目前大多數大型網站都是使用這種方式清除浮動,瀏覽器兼容好,不會出現什么奇怪的問題。愛掏網 - it200.com

zoom是IE專有屬性,可解決ie6,ie7浮動問題,IE8以上和非IE瀏覽器才支持偽類:after。愛掏網 - it200.com

缺點就是代碼比較多,需要偽類:after跟zoom一起使用才能兼容所有主流瀏覽器。愛掏網 - it200.com

但推薦使用,可將改樣式定義為公共樣式,減少代碼量

clearfixf:after{

display:block;

height:0;

content:'.';

visibility:hidden;

clear:both;

}

clearfix:{

zoom:1

}

https://yq.aliyun.com/articles/null

代碼如下:

img_9f35721bb87f7b4856e6a465d462913a.png

實現效果

img_752ae76d971086ee2048b8e3314f45a6.png
聲明:所有內容來自互聯網搜索結果,不保證100%準確性,僅供參考。如若本站內容侵犯了原著者的合法權益,可聯系我們進行處理。
發表評論
更多 網友評論0 條評論)
暫無評論

返回頂部

主站蜘蛛池模板: 又硬又粗又大一区二区三区视频| 欧美亚洲国产视频| 久久只这里是精品66| 久久精品一区二区影院| www亚洲视频| 骚视频在线观看| 特黄特黄aaaa级毛片免费看| 性无码专区无码| 国产精品99无码一区二区| 全高清特级毛片| 久久国产精品范冰啊| 69国产精品视频免费| 美女被免网站在线视频| 欧美丰满大乳大屁股流白浆| 国产精品入口麻豆高清在线| 亚洲国产精彩中文乱码av| 2020国产精品永久在线| 欧美va天堂在线电影| 国模精品一区二区三区| 啊昂…啊昂高h| 久久婷婷激情综合色综合俺也去| 香蕉狠狠再啪线视频| 无码国产精品一区二区高潮| 国产精品一区二区香蕉| 亚洲激情黄色小说| 一本一道av无码中文字幕| 男生和女生一起差差差很痛视频 | 国产三级在线免费观看| 久久久久久久97| 国产精品大片天天看片| 欧美粗大猛烈水多18p| 女子初尝黑人巨嗷嗷叫| 四虎成人精品免费影院| 久久国产精品女| 美女大胸又爽又黄网站| 天堂资源在线官网| 全部免费a级毛片| 91在线一区二区三区| 玉蒲团之偷情宝典| 少妇人妻在线视频| 又爽又黄又无遮挡的视频|