溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

CSS單位和值與樣式設(shè)置技巧

發(fā)布時(shí)間:2021-08-31 18:45:46 來源:億速云 閱讀:114 作者:chen 欄目:web開發(fā)

這篇文章主要講解了“CSS單位和值與樣式設(shè)置技巧”,文中的講解內(nèi)容簡單清晰,易于學(xué)習(xí)與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學(xué)習(xí)“CSS單位和值與樣式設(shè)置技巧”吧!

一、單位和值

  1.1 顏色值

  在網(wǎng)頁中的顏色設(shè)置是非常重要,有字體顏色(color)、背景顏色(background-color)、邊框顏色(border)等,設(shè)置顏色的方法也有很多種:

  1、英文命令顏色

  前面幾個(gè)小節(jié)中經(jīng)常用到的就是這種設(shè)置方法:

p{color:red;}
  2、RGB顏色

  這個(gè)與 photoshop 中的 RGB 顏色是一致的,由 R(red)、G(green)、B(blue) 三種顏色的比例來配色。

  p{color:rgb(133,45,200);}
  每一項(xiàng)的值可以是 0~255 之間的整數(shù),也可以是 0%~100% 的百分?jǐn)?shù)。如:

  p{color:rgb(20%,33%,25%);}
  3、十六進(jìn)制顏色

  這種顏色設(shè)置方法是現(xiàn)在比較普遍使用的方法,其原理其實(shí)也是 RGB 設(shè)置,但是其每一項(xiàng)的值由 0-255 變成了十六進(jìn)制 00-ff。

p{color:#00ffff;}

  配色表:

CSS單位和值與樣式設(shè)置技巧
1.2 長度值

  長度單位總結(jié)一下,目前比較常用到px(像素)、em、% 百分比,要注意其實(shí)這三種單位都是相對單位。

  1、像素

  像素為什么是相對單位呢?因?yàn)橄袼刂傅氖秋@示器上的小點(diǎn)(CSS規(guī)范中假設(shè)“90像素=1英寸”)。實(shí)際情況是瀏覽器會(huì)使用顯示器的實(shí)際像素值有關(guān),在目前大多數(shù)的設(shè)計(jì)者都傾向于使用像素(px)作為單位。

  2、em

  就是本元素給定字體的 font-size 值,如果元素的 font-size 為 14px ,那么 1em = 14px;如果 font-size 為 18px,那么 1em = 18px。如下代碼:

p{font-size:12px;text-indent:2em;}
  上面代碼就是可以實(shí)現(xiàn)段落首行縮進(jìn) 24px(也就是兩個(gè)字體大小的距離)。

  下面注意一個(gè)特殊情況:

  但當(dāng)給 font-size 設(shè)置單位為 em 時(shí),此時(shí)計(jì)算的標(biāo)準(zhǔn)以 p 的父元素的 font-size 為基礎(chǔ)。如下代碼:

html:

<p>以這個(gè)<span>例子</span>為例。</p>

css:

p{font-size:14px}
span{font-size:0.8em;}
  結(jié)果 span 中的字體“例子”字體大小就為 11.2px(14 * 0.8 = 11.2px)。

  3、百分比

p{font-size:12px;line-height:130%}

  設(shè)置行高(行間距)為字體的130%(12 * 1.3 = 15.6px)。

二、樣式設(shè)置技巧

  2.1 水平居中-行內(nèi)元素

  我們在實(shí)際工作中常會(huì)遇到需要設(shè)置水平居中的場景,比如為了美觀,文章的標(biāo)題一般都是水平居中顯示的。

  這里我們又得分兩種情況:行內(nèi)元素 還是 塊狀元素 ,塊狀元素里面又分為定寬塊狀元素,以及不定寬塊狀元素。今天我們先來了解一  下行內(nèi)元素怎么進(jìn)行水平居中?

  如果被設(shè)置元素為文本、圖片等行內(nèi)元素時(shí),水平居中是通過給父元素設(shè)置 text-align:center 來實(shí)現(xiàn)的。(父元素和子元素:如下面的html代碼中,div是“我想要在父容器中水平居中顯示”這個(gè)文本的父元素。反之這個(gè)文本是div的子元素 )如下代碼:

html代碼:

XML/HTML Code復(fù)制內(nèi)容到剪貼板

  1. <body>  

  2.   <div class="txtCenter">我想要在父容器中水平居中顯示。</div>  

  3. </body>  

  4. css代碼:   

  5.   

  6. <style>  

  7.   .txtCenter{   

  8.     text-align:center;   

  9.   }   

  10. </style>  

 2.2 定寬塊狀居中

  當(dāng)被設(shè)置元素為 塊狀元素 時(shí)用 text-align:center 就不起作用了,這時(shí)也分兩種情況:定寬塊狀元素和不定寬塊狀元素。

  這一小節(jié)我們先來講一講定寬塊狀元素。(定寬塊狀元素:塊狀元素的寬度width為固定值。)

  滿足定寬和塊狀兩個(gè)條件的元素是可以通過設(shè)置“左右margin”值為“auto”來實(shí)現(xiàn)居中的。我們來看個(gè)例子就是設(shè)置 div 這個(gè)塊狀元素水平居中:

html代碼:

XML/HTML Code復(fù)制內(nèi)容到剪貼板

  1. <span style="font-family: 楷體; font-size: 14pt;"><body>  

  2.   <div>我是定寬塊狀元素,哈哈,我要水平居中顯示。</div>  

  3. </body>  

  4. css代碼:   

  5.     

  6. <style>  

  7. div{   

  8.     border:1px solid red;/*為了顯示居中效果明顯為 div 設(shè)置了邊框*/   

  9.         

  10.     width:200px;/*定寬*/   

  11.     margin:20px auto;/* margin-left 與 margin-right 設(shè)置為 auto */   

  12. }   

  13.     

  14. </style></span>  

也可以寫成:

margin-left:auto;
margin-right:auto;
注意:元素的“上下 margin” 是可以隨意設(shè)置的。

 2.3 不定寬

  在實(shí)際工作中我們會(huì)遇到需要為“不定寬度的塊狀元素”設(shè)置居中,比如網(wǎng)頁上的分頁導(dǎo)航,因?yàn)榉猪摰臄?shù)量是不確定的,所以我們不能通過設(shè)置寬度來限制它的彈性。(不定寬塊狀元素:塊狀元素的寬度width不固定。)

  不定寬度的塊狀元素有三種方法居中(這三種方法目前使用的都很多):

加入 table 標(biāo)簽
設(shè)置 display: inline 方法:與第一種類似,顯示類型設(shè)為 行內(nèi)元素,進(jìn)行不定寬元素的屬性設(shè)置
設(shè)置 position:relative 和 left:50%:利用 相對定位 的方式,將元素向左偏移 50% ,即達(dá)到居中的目的
  這一小節(jié)我們來講一下第一種方法:

  為什么選擇方法一加入table標(biāo)簽? 是利用table標(biāo)簽的長度自適應(yīng)性---即不定義其長度也不默認(rèn)父元素body的長度(table其長度根據(jù)其內(nèi)文本長度決定),因此可以看做一個(gè)定寬度塊元素,然后再利用定寬度塊狀居中的margin的方法,使其水平居中。

  第一步:為需要設(shè)置的居中的元素外面加入一個(gè) table 標(biāo)簽 ( 包括 <tbody>、<tr>、<td> )。

  第二步:為這個(gè) table 設(shè)置“左右 margin 居中”(這個(gè)和定寬塊狀元素的方法一樣)。

  舉例如下:

  html代碼:

XML/HTML Code復(fù)制內(nèi)容到剪貼板

  1. <span style="font-family: 楷體; font-size: 14pt;"><div>  

  2.  <table>  

  3.   <tbody>  

  4.     <tr><td>  

  5.     <ul>  

  6.         <li>我是第一行文本</li>  

  7.         <li>我是第二行文本</li>  

  8.         <li>我是第三行文本</li>  

  9.     </ul>  

  10.     </td></tr>  

  11.   </tbody>  

  12.  </table>  

  13. </div>  

  14. css代碼:   

  15.     

  16. <style>  

  17. table{   

  18.     border:1px solid;   

  19.     margin:0 auto;   

  20. }   

  21. </style></span><span style="font-family: 楷體; font-size: 14pt;"> </span>  

除了上一節(jié)講到的插入table標(biāo)簽,可以使不定寬塊狀元素水平居中之外,本節(jié)介紹第2種實(shí)現(xiàn)這種效果的方法,改變元素的display類型為行內(nèi)元素,利用其屬性直接設(shè)置。

第二種方法:改變塊級(jí)元素的 display 為 inline 類型(設(shè)置為 行內(nèi)元素 顯示),然后使用 text-align:center 來實(shí)現(xiàn)居中效果。如下例子:

html代碼:

XML/HTML Code復(fù)制內(nèi)容到剪貼板

  1. <body>  

  2. <div class="container">  

  3.     <ul>  

  4.         <li><a href="#">1</a></li>  

  5.         <li><a href="#">2</a></li>  

  6.         <li><a href="#">3</a></li>  

  7.     </ul>  

  8. </div>  

  9. </body>  

  10. css代碼:   

  11.     

  12. <style>  

  13. .container{   

  14.     text-align:center;   

  15. }   

  16. /* margin:0;padding:0(消除文本與div邊框之間的間隙)*/   

  17. .container ul{   

  18.     list-style:none;   

  19.     margin:0;   

  20.     padding:0;   

  21.     display:inline;   

  22. }   

  23. /* margin-right:8px(設(shè)置li文本之間的間隔)*/   

  24. .container li{   

  25.     margin-right:8px;   

  26.     display:inline;   

  27. }   

  28. </style>   

這種方法相比第一種方法的優(yōu)勢是不用增加無語義標(biāo)簽,但也存在著一些問題:它將塊狀元素的 display 類型改為 inline,變成了行內(nèi)元素,所以少了一些功能,比如設(shè)定長度值。

  除了前兩節(jié)講到的插入table標(biāo)簽,以及改變元素的display類型,可以使不定寬塊狀元素水平居中之外,本節(jié)介紹第3種實(shí)現(xiàn)這種效果的方法,設(shè)置浮動(dòng)和相對定位來實(shí)現(xiàn)。

方法三:通過給父元素設(shè)置 float,然后給父元素設(shè)置 position:relative 和 left:50%,子元素設(shè)置 position:relative 和 left: -50% 來實(shí)現(xiàn)水平居中。

我們可以這樣理解:假想ul層的父層(即下面例子中的div層)中間有條平分線將ul層的父層(div層)平均分為兩份,ul層的css代碼是將ul層的最左端與ul層的父層(div層)的平分線對齊;而li層的css代碼則是將li層的平分線與ul層的最左端(也是div層的平分線)對齊,從而實(shí)現(xiàn)li層的居中。

代碼如下:

XML/HTML Code復(fù)制內(nèi)容到剪貼板

  1. <body>  

  2. <div class="container">  

  3.     <ul>  

  4.         <li><a href="#">1</a></li>  

  5.         <li><a href="#">2</a></li>  

  6.         <li><a href="#">3</a></li>  

  7.     </ul>  

  8. </div>  

  9. </body>  

  10. css代碼:   

  11.     

  12. <style>  

  13. .container{   

  14.     float:left;   

  15.     position:relative;   

  16.     left:50%   

  17. }   

  18.     

  19. .container ul{   

  20.     list-style:none;   

  21.     margin:0;   

  22.     padding:0;   

  23.         

  24.     position:relative;   

  25.     left:-50%;   

  26. }   

  27. .container li{float:left;display:inline;margin-right:8px;}   

  28. </style>  

這三種方法使用得都非常廣泛,各有優(yōu)缺點(diǎn),具體選用哪種方法,可以視具體情況而定。

感謝各位的閱讀,以上就是“CSS單位和值與樣式設(shè)置技巧”的內(nèi)容了,經(jīng)過本文的學(xué)習(xí)后,相信大家對CSS單位和值與樣式設(shè)置技巧這一問題有了更深刻的體會(huì),具體使用情況還需要大家實(shí)踐驗(yàn)證。這里是億速云,小編將為大家推送更多相關(guān)知識(shí)點(diǎn)的文章,歡迎關(guān)注!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

css
AI