CSS(上)css
Cascading Style Sheets 簡稱 層疊樣式表html
官方描述:
用於描述用標記語言編寫的文檔的外觀和格式。 雖然最經常使用於更改用HTML和XHTML編寫的網頁和用戶界面的樣式,但該語言能夠應用於任何類型的XML文檔,包括純XML,SVG和XUL。 與HTML和JavaScript一塊兒,CSS是大多數網站使用的基礎技術,用於建立具備視覺吸引力的網頁,Web應用程序的用戶界面以及許多移動應用程序的用戶界面。css3
人話:
層疊樣式表也就是CSS,是你在HTML以後應該學習的第二門技術。git
HTML用於定義內容的結構和語義,CSS用於設計風格和佈局。好比,您可使用CSS來更改內容的字體、顏色、大小、間距,將內容分爲多列,或者添加動畫及其餘的裝飾效果,進而對頁面的版面佈局和外觀樣式的美化。github
用於(加強)控制網頁樣式並容許將樣式信息與網頁內容分離的一種標記性語言。CSS 不須要編譯,能夠直接由瀏覽器執行(屬於瀏覽器解釋型語言)。web
例:chrome
h1 { color: red; font-size:25px; } h1選擇器 color 屬性 red屬性值
若是直接利用html頁面書寫頁面,頁面的美觀達不到要求,若是要添加一些簡單樣式利用html屬性添加會是代碼複雜臃腫,因此咱們要使用css進行頁面的美化;
編程
Css的做用:
主要是用來進行頁面的版面佈局和外觀樣式的美化;segmentfault
使用css的原理:
可以將結構html和樣式css分離書寫,簡化代碼,提升可閱讀性;
瀏覽器
直接在標籤的開始標籤身上添加一個 style=「」屬性,而後在引號裏面書寫css屬性和屬性值便可,沒有實現結構和樣式分離,儘可能不用
書寫在head標籤裏面,title標籤下面,以一對style標籤包裹,實現告終構和樣式的半分離;
外部連接的步驟:
1. 新建:.css格式的css文件,直接書寫選擇器以及css樣式; 1. 引用:利用link標籤引入新建的css文件,要配合link的三個屬性 rel關係,type文件類型(能夠不寫) ,href文件路徑; [https://developer.mozilla.org/zh-CN/docs/Web/HTML/Element/link](https://developer.mozilla.org/zh-CN/docs/Web/HTML/Element/link)
使用外部連接的好處:
1. 實現告終構和樣式的徹底分離,代碼簡介,可讀性強; 1. 一個css樣式能夠共享,若是兩個頁面的標籤樣式徹底一致,就可使用同一個css文件,而後分別鏈接過來便可;
選擇器 { 屬性1:屬性值1; 屬性2:屬性值2; 屬性3:屬性值3;…… }
選擇器:指定CSS樣式做用的HTML對象(要更改樣式的標籤),花括號內是對該對象設置的具體樣式。
屬性和屬性值:以鍵值對的形式出現,屬性和屬性值之間用英文的冒號 ’ : ’ 連接;
選擇器的做用:把想要選擇的元素標籤選擇出來。
選擇器的分類:基礎選擇器和複合選擇器
以標籤名稱命名的選擇器,能夠把將頁面中全部的同類元素所有選中;
注意:若是咱們選中了改標籤,頁面中全部的該標籤就會被所有選中,全部不建議你們直接使用標籤選擇器;
a,p,div,li,ul{ color:red; } /*頁面上全部的a,p,li,ul都會將字體顏色設置爲紅色,不過優先級最低*/
使用方式:在css裏面用點「 . 」 + 類名稱 +{ css鍵值對 } 進行樣式定義;
調用:在html裏面哪一個標籤須要,就在開始標籤敲空格class=「類名稱」進行調用;
命名規則:不能用純數字、不能數字開頭的、不能中文命名,建議不要用特殊符號;能夠用英文單詞或者拼音 命名,能夠以數字結束
多類名調用:一個標籤身上只能使用一個class,若是想要調用多個類名咱們能夠在一個class裏面直接以空格 隔開直接書寫另外一個類名稱便可;
<p class="test">我愛你</p> <style> .test{ color:red; } /*類選擇器經過class屬性來綁定一個類名,樣式經過. + ‘class’來實現關聯,優先級低於id選擇器*/ /* 工程實踐中咱們通常推薦使用類選擇器*/ </style>
類選擇能夠重複使用,只要樣式一致就能夠重複的使用同一個類名稱;
id選擇器是惟一的不能重複使用,一個id名稱一個頁面只能出現一次;
<p id="test">若是說命運是應許之地,那麼在這一刻,你並不知道將來會如何勾連</p> <style> #test{ color:red; } /*id選擇器經過id屬性來綁定一個惟一id,樣式經過# + ‘id’來實現關聯,優先級較高*/ </style>
一個表示選中全部標籤,匹配頁面的全部標籤,下降頁面獲得響應時間,不建議使用;
實際工做中用的最多的是下面的代碼
{ margin: 0; padding: 0; }
<a class="test" src='/test.html'>一輩子須惜少年時,那能白首下書帷。</a> <style> [src^="test"]{ color:blue; } .test[src]{ color:red; } /*屬性選擇器經過[attr=*]來選擇具備該屬性的元素,屬性值支持通配符(不作具體詳解)形式,優先級較低,多種選擇器能夠結合使用,上例中,後者優先級高於前者,因此呈現的字體爲紅色。*/ </style>
<p>我不會變色(穿越人海,只爲與你相擁)</p> <ul> <li>我是子元素<span>我是子子元素(夢魂縱有也成虛 那堪和夢無)</span></li> <li>我是第二個子元素(我心匪石,不可轉也)</li> <li> <li>我是li裏面的li(夜夜除非,美夢留人睡)</li> </li> </ul> <p>我會變紅</p> <style> ul li{ margin-left:20px; } /*經過空格隔開的方式選擇全部子元素,這樣,ul裏面的全部li都會應用到左邊距20px的樣式,包括li裏面的li*/ ul>li{ padding-left:20px; } /*經過選擇器 > 選擇器 來選擇直接子元素,意思是說,只有第一級的li會被應用成左內邊距20px,而li裏面的li不會被應用到。*/ ul + p{ background-colo:red; } /*經過 選擇器 + 選擇器 來選擇兄弟元素,這樣讓下面的p元素的背景色爲紅色,而第一個p標籤的背景色不會變。*/ </style>
https://codepen.io/AlexZ33/pen/YzzRPBW
這裏着重實踐下 相鄰兄弟選擇器
經常使用場景
說明:
<a class="test" src='/test.html'>我是鏈接</a> <button>點我我就綠</button> <style> a:link{ color:blue; } /*鏈接未被訪問過,爲blue顏色*/ a:visited{ color:red; } /*訪問以後,變成紅色*/ a:hover{ font-size:40px; } /*鼠標一上去,字體變大*/ button:focus{ color:green; } /*點擊按鈕,按鈕聚焦,會變成綠色*/ button:active{ color:red; } /*點擊按鈕的過程當中,按鈕顏色會變紅*/ </style>
https://codepen.io/AlexZ33/pen/abbQONO
做用:選擇p中第一個字符
簡單用法:
https://codepen.io/AlexZ33/pen/WNNYvoa?&editable=true
複雜實踐:
https://codepen.io/AlexZ33/pen/XWWybaJ
經常使用的HTML和CSS content屬性特殊字符概括
https://codepen.io/AlexZ33/pen/dyyQaPG
權重主要分爲 4 個等級:
style=""
,權值爲1000#content
,權值爲100.content
,權值爲10div p
,權值爲1例子:
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>選擇器權重</title> <meta name="description" content="選擇器權重"> <meta name="author" content="Way Lau, www.waylau.com"/> <meta name="viewport" content="width=device-width"> <link rel="shortcut icon" href="/favicon.ico"> <style type="text/css"> #redP p { /* 權值 = 100+1=101 */ color: #F00; /* 紅色 */ } #redP .red em { /* 權值 = 100+10+1=111 */ color: #00F; /* 藍色 */ } #redP p span em { /* 權值 = 100+1+1+1=103 */ color: #FF0; /*黃色*/ } </style> </head> <body> <div id="redP"> <p class="red">red <span><em>em red</em></span> </p> <p>red</p> </div> </body> </html>
最終頁面效果以下:
https://codepen.io/AlexZ33/pen/QWWVYpR
相似示例:
遵循以下法則:
!important
規則的優先級最大例子:
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>!important 用法</title> <meta name="description" content="!important 用法"> <meta name="author" content="Way Lau, www.waylau.com"/> <meta name="viewport" content="width=device-width"> <link rel="shortcut icon" href="/favicon.ico"> <style> .test { color: #f00 !important; color: #000; } .test2 { color: #f00 !important; } .test2 { color: #000; } .test3 { color: #000; } .test3 { color: #f00; } </style> </head> <body> <div class="test">同一條樣式內,!important 優先級高</div> <div class="test2">在分散的樣式條目內,!important 優先級高</div> <div class="test3">沒有被覆蓋</div> </body> </html>
https://codepen.io/AlexZ33/pen/dyyqaVZ
注意:Internet Explorer 9+ 支持 border-radius 和 box-shadow 屬性。Firefox、Chrome 以及 Safari 支持全部新的邊框屬性。 對於 border-image,Safari 5 以及更老的版本須要前綴 -webkit-。 Opera 支持 border-radius 和 box-shadow 屬性,可是對於 border-image 須要前綴 -o-
假設咱們想給一個容器設置一層白色背景和一道半透明的邊框,咱們最初的嘗試多是這樣的:
border: 10px solid hsla(0, 0%, 100%, .5); background: #fff;
除非你對背景和邊框的工做原理很是地熟悉,不然展現出來的結果可能讓你摸不着頭腦,由於咱們的背景會從它的半透明邊框透上來。以下圖所示:
默認狀況下,背景會延伸到邊框所在的區域下層,即便你使用的是不透明的實色邊框。幸運的是,在CSS3中,咱們能夠經過bakcground-clip
屬性來調整上述默認行爲。這個屬性的初始值是border-box,若是不但願背景侵入到邊框所在的範圍,咱們能夠把它的值設爲padding-box
,即:
border: 1px solid hsla(0, 0%, 100%, .5); background: #fff; background-clip: padding-box
https://codepen.io/AlexZ33/pen/rNBPGOj
目前爲止,咱們大多數人可能用過(或濫用過)box-shadow來生成投影。不太爲人所知的是,它還接受第四個參數(叫作擴張半徑),經過指定正值和負值,可讓投影面積加大或減少。一個正值的擴張半徑加上兩個爲零的偏移量以及爲零的模糊值,獲得的投影其實就像一道實線邊框:
background: yellowgreen; box-shadow: 0 0 0 10px #655;
使用box-shadow的另外一個好處是它支持逗號分隔語法,咱們能夠建立任意數量的投影(邊框)
ackground: yellowgreen; box-shadow: 0 0 0 10px #655, 0 0 0 15px deeppink;
須要注意的是,box-shadow是層層疊加的,第一層投影位於最頂層。所以,須要按照此規律調整擴張半徑
https://codepen.io/AlexZ33/pen/LYYXpvX
高級案例:
https://alexz33.github.io/CSS3_demo/css3_picshadow.html
用css畫三角形很簡單,就是將一個塊元素寬高設置爲0,而後給某一邊設一個比較厚的寬度利用盒子的均分原理,盒子都是矩形或者正方形,從形狀的中心,向4個上下左右劃分4個部分。
保證元素是塊級元素,設置元素的邊框,不須要顯示的邊框使用透明色transparent。
因此,若是你要一個向上或者向下的三角:border-left和border-right就是transparent,而border-bottom可見則三角向上,border-top可見則三角向下
https://codepen.io/AlexZ33/pen/MWWzMdm
咱們將詳細介紹文本/字體樣式的全部基本原理,包括設置文字的粗細,字體和樣式,文字的屬性簡寫,文字的對齊,和其餘效果,以及行和字母間距。
用於樣式文本的 CSS 屬性一般能夠分爲兩類,咱們將在本文中分別觀察。
可細緻學習文章:
font-size文字大小,經常使用的單位是px像素,通常是有默認的字體大小16px,可是咱們建議你們一開始就在body中設置一個默認大小;
font-family:Arial,」Microsoft Yahei」,「微軟雅黑」;
在CSS中設置字體名稱,能夠直接寫中文,可是在文件編碼(GB2312, UTF-8等)不匹配時會產生亂碼的錯誤.XP系統不支持相似微軟雅黑的中文
方案一:能夠用英文來代替
方案二:在CSS直接使用unicode編碼來寫字體名稱能夠避免這個錯誤,使用unicode寫中文字體名稱,瀏覽器能夠正確的解析
加粗:font-weight:bold; font-weight:700;
不加粗:font-weight:normal; font-weight:400;
傾斜:font-style:italic;
不傾斜:font-style:normal;
注意:實際工做中咱們通常會使用font-style:normal;讓em和i不傾斜;
a、直接寫英文單詞yellow red等等
b、16進製表示#aabbcc或者#abc
c、rgb()如rgb(0,0,0)
d、rgba(),如rgba(0,0,0,0.5)a爲透明度
黑色系列:#000; #333; #666; #9999;
灰色系列:#ccc; #eee; #ddd; #dedede;
紅色:#f00;
text-align有三個取值left、center、right, text-align只控制盒子裏面的內容的對齊;
文本居中:text-align:center;
https://developer.mozilla.org/zh-CN/docs/Web/CSS/text-align
line-height取值爲數字,能夠設置文字行與行之間的距離;
line-height:30px; 表示行高30px
text-indent首行縮進,取值爲具體的像素值或者直接em,1em等於一個字的大小;
text-decoration:none; 沒有線
text-decoration:underline;下劃線
text-decoration:line-through; 中劃線/刪除線
text-decoration:overline;上劃線
注意:實際工做中咱們用的最多的是沒有線 text-decoration:none;,主要是給超連接a標籤去除默認的下劃線;通常放在css的最前面將頁面全部a的樣式都去除;
font:是否傾斜 是否加粗 文字大小/ 行高 字體;
font: font-style font-weight font-size/line-height font-family;
注意:**
之前 CSS3 的版本,網頁設計師不得不使用用戶計算機上已經安裝的字體。
使用 CSS3,網頁設計師可使用他/她喜歡的任何字體。
當你發現您要使用的字體文件時,只需簡單的將字體文件包含在網站中,它會自動下載給須要的用戶。
您所選擇的字體在新的 CSS3 版本有關於@font-face
規則描述。
您"本身的"的字體是在 CSS3 @font-face
規則中定義的。
注意:Internet Explorer 9+, Firefox, Chrome, Safari, 和 Opera 支持 WOFF (Web Open Font Format) 字體。
Firefox, Chrome, Safari, 和 Opera 支持 .ttf(True Type字體)和.otf(OpenType)字體字體類型)。
Chrome, Safari 和 Opera 也支持 SVG 字體/摺疊。
Internet Explorer 一樣支持 EOT (Embedded OpenType) 字體。
在 @font-face
規則中,您必須首先定義字體的名稱(好比 FontAwesome ),而後指向該字體文件 fontawesome-webfont.woff 。
@font-face { font-family: 'FontAwesome'; src: url('fonts/fontawesome-webfont.woff'); } .font6 { font-family: 'FontAwesome', sans-serif; font-size: 14px; color: pink; line-height: 1.3em; }
源碼參見 https://gitee.com/turingitclub/css-learning/tree/dev/base中 base
目錄下的 font.html
<h2>Shopping (unordered) list</h2> <p>Paragraph for reference, paragraph for reference, paragraph for reference, paragraph for reference, paragraph for reference, paragraph for reference.</p> <ul> <li>Humous</li> <li>Pitta</li> <li>Green salad</li> <li>Halloumi</li> </ul> <h2>Recipe (ordered) list</h2> <p>Paragraph for reference, paragraph for reference, paragraph for reference, paragraph for reference, paragraph for reference, paragraph for reference.</p> <ol> <li>Toast pitta, leave to cool, then slice down the edge.</li> <li>Fry the halloumi in a shallow, non-stick pan, until browned on both sides.</li> <li>Wash and chop the salad.</li> <li>Fill pitta with salad, humous, and fried halloumi.</li> </ol> <h2>Ingredient description list</h2> <p>Paragraph for reference, paragraph for reference, paragraph for reference, paragraph for reference, paragraph for reference, paragraph for reference.</p> <dl> <dt>Humous</dt> <dd>A thick dip/sauce generally made from chick peas blended with tahini, lemon juice, salt, garlic, and other ingredients.</dd> <dt>Pitta</dt> <dd>A soft, slightly leavened flatbread.</dd> <dt>Halloumi</dt> <dd>A semi-hard, unripened, brined cheese with a higher-than-usual melting point, usually made from goat/sheep milk.</dd> <dt>Green salad</dt> <dd>That green healthy stuff that many of us just use to garnish kebabs.</dd> </dl>
如今,若是你去到例子的展現頁面,並使用瀏覽器開發者工具查看那些列表元素,你會注意到若干個默認的樣式預設值:
<ul>
和 <ol>
元素設置margin
的頂部和底部: 16px(1em) 0;和 padding-left: 40px(2.5em); (在這裏注意的是瀏覽器默認字體大小爲16px)。<li>
默認是沒有設置間距的。 --> 怎樣設置列表間距?<dl>
元素設置 margin的頂部和底部: 16px(1em) ,無內邊距設定。<dd>
元素設置爲: margin-left
40px
(2.5em
)。<p>
元素設置 margin的頂部和底部: 16px(1em),和其餘的列表類型相同。/* General styles */ html { font-family: Helvetica, Arial, sans-serif; font-size: 10px; } h2 { font-size: 2rem; } ul,ol,dl,p { font-size: 1.5rem; } li, p { line-height: 1.5; } /* Description list styles */ dd, dt { line-height: 1.5; } dt { font-weight: bold; } dd { margin-bottom: 1.5rem; }
line-height
,所以段落和每一個單獨的列表項目將在行之間具備相同的間距。 這也將有助於保持垂直間距一致。margin-bottom
爲1.5 rem(與段落(p)和列表項目(li))相同。 再次強調一遍,這裏很好地實現了一致性! 咱們還使描述術語具備粗體字體,所以它們在視覺上脫穎而出。當爲 links 添加樣式時, 理解利用僞類有效地創建連接狀態是很重要的,以及如何爲連接添加樣式來實現經常使用的功能,好比說導航欄、選項卡。咱們將在本文中關注全部這些主題。
第一件須要理解的事情是連接狀態的概念,連接存在時處於不一樣的狀態,每個狀態均可以用對應的 僞類 來應用樣式:
:link
僞類來應用樣式。:visited
僞類來應用樣式。:hover
僞類來應用樣式。HTMLElement.focus()
) 它可使用 :focus
僞類來應用樣式。:active
僞類來應用樣式。https://codepen.io/AlexZ33/pen/jOOQXpa
當你觀察默認樣式的時候,你也許會注意到一些東西:
有趣的是,這些默認的樣式與20世紀90年代中期瀏覽器早期的風格幾乎相同。這是由於用戶知道以及期待連接就是這樣變化的,若是連接的樣式不一樣,就會讓一些人感到奇怪。不過這不意味着你不該該爲連接添加任何樣式,只是你的樣式不該該與用戶預期的相差太大,你應該至少:
color
文字的顏色cursor
鼠標光標的樣式,你不該該把這個關掉,除非你有很是好的理由。outline
文字的輪廓 (輪廓有點像邊框,惟一的區別是邊框佔用了盒模型的空間,而輪廓沒有; 它只是設置在背景圖片的頂部)。outline 是一個有用的輔助功能,因此在把它關掉以前考慮清楚;你至少應該將懸停 (hover) 狀態的樣式同時應用到選中 (focus) 狀態上。a { } a:link { } a:visited { } a:focus { } a:hover { } a:active { }
這個順序是重要的,由於連接的樣式是創建在另外一個樣式之上的,好比第一個規則的樣式會應用到全部後續的樣式,若是當一個連接被激活 (activated) 的時候,它也是處於懸停 (hover) 狀態的。若是你搞錯了順序,那麼就可能不會產生正確的效果。要記住這個順序
body { width: 300px; margin: 0 auto; font-size: 1.2rem; font-family: sans-serif; } p { line-height: 1.4; } a { outline: none; text-decoration: none; padding: 2px 1px 0; } a:link { color: #265301; } a:visited { color: #437A16; } a:focus { border-bottom: 1px solid; background: #BAE498; } a:hover { border-bottom: 1px solid; background: #CDFEAA; } a:active { background: #265301; color: #CDFEAA; }
https://codepen.io/AlexZ33/pen/jOOQJwE
若是你碰到一個比自身容器長的文本,這個技巧對你頗有用。在這個示例中,默認時,無論容器的寬度,文本都將水平填充。
CSS3 文本效果是這樣一個術語用來在正常的文本中實現一些額外的特性。
主要是兩個屬性的 CSS3 文本效果,以下:
注意:Internet Explorer 10, Firefox,Chrome, Safari, 和 Opera支持text-shadow 屬性。全部的主流瀏覽器支持自動換行(word-wrap)屬性。Internet Explorer 9及更早IE版本不支持 text-shadow 屬性
文本陰影。 您指定了水平陰影,垂直陰影,模糊的距離,以及陰影的顏色:
.text-shadow { text-shadow: 10px 10px 10px #6AAFCF; }
換行。 CSS3中,自動換行屬性容許您強制文本換行 - 即便這意味着分裂它中間的一個字:
.word-wrap { word-wrap: break-word; width: 150px; border: 1px solid #ff0000; }
屬性 | 描述 | CSS |
---|---|---|
hanging-punctuation | 規定標點字符是否位於線框以外。 | 3 |
punctuation-trim | 規定是否對標點字符進行修剪。 | 3 |
text-align-last | 設置如何對齊最後一行或緊挨着強制換行符以前的行。 | 3 |
text-emphasis | 向元素的文本應用重點標記以及重點標記的前景色。 | 3 |
text-justify | 規定當 text-align 設置爲 "justify" 時所使用的對齊方法。 | 3 |
text-outline | 規定文本的輪廓。 | 3 |
text-overflow | 規定當文本溢出包含元素時發生的事情。 | 3 |
text-shadow | 向文本添加陰影。 | 3 |
text-wrap | 規定文本的換行規則。 | 3 |
word-break | 規定非中日韓文本的換行規則。 | 3 |
word-wrap | 容許對長的不可分割的單詞進行分割並換行到下一行。 | 3 |
https://codepen.io/AlexZ33/pen/JjobjWB
全部的元素都被一個個的「盒子(box)」包圍着
在 CSS 中咱們普遍地使用兩種「盒子」 —— 塊級盒子 (block box) 和 內聯盒子 (inline box)。這兩種盒子會在頁面流(page flow)和元素之間的關係方面表現出不一樣的行爲:
一個被定義成塊級的(block)盒子會表現出如下行爲:
width
和 height
屬性能夠發揮做用除非特殊指定,諸如標題(<h1>
等)和段落(<p>
)默認狀況下都是塊級的盒子。
若是一個盒子對外顯示爲 inline
,那麼他的行爲以下:
用作連接的 <a>
元素、 <span>
、 <em>
以及 <strong>
都是默認處於 inline
狀態的。
咱們經過對盒子display
屬性的設置,好比 inline
或者 block
,來控制盒子的外部顯示類型。
常見block類型:
常見inline類型:
display
CSS 屬性指定了元素的顯示類型,它包含兩類基礎特徵:
/* <display-outside> values 外部顯示類型 */ display: block; display: inline; display: run-in; /* <display-inside> values 內部顯示類型 */ display: flow; display: flow-root; display: table; display: flex; display: grid; display: ruby; /* <display-outside> plus <display-inside> values */ display: block flow; display: inline table; display: flex run-in; /* <display-listitem> values */ display: list-item; display: list-item block; display: list-item inline; display: list-item flow; display: list-item flow-root; display: list-item block flow; display: list-item block flow-root; display: flow list-item block; /* <display-internal> values */ display: table-row-group; display: table-header-group; display: table-footer-group; display: table-row; display: table-cell; display: table-column-group; display: table-column; display: table-caption; display: ruby-base; display: ruby-text; display: ruby-base-container; display: ruby-text-container; /* <display-box> values */ display: contents; display: none; /* <display-legacy> values */ display: inline-block; display: inline-table; display: inline-flex; display: inline-grid; /* Global values */ display: inherit; display: initial; display: unset;
示例1: https://codepen.io/AlexZ33/pen/WNNWLJV
示例2: 改變display屬性 --> https://codepen.io/AlexZ33/pen/abbxPjw
示例3:
完整的 CSS 盒模型應用於塊級盒子,內聯盒子只使用盒模型中定義的部份內容。模型定義了盒的每一個部分 —— margin, border, padding, and content —— 合在一塊兒就能夠建立咱們在頁面上看到的內容
inline-block類型是CSS2.1中追加的一個盒模型。
line-block類型屬於block類型盒的一種,可是在顯示時它具備inline類型盒的特色:
https://codepen.io/AlexZ33/pen/yLLrWaM
CSS2.1以前,若是要在一行並列顯示多個block類型的元素,則須要使用float屬性或者position屬性,可是這樣會使樣式變得比較複雜。
CSS2.1追加了inline-block類型,使並列顯示多個block類型變得很是簡單。
https://codepen.io/AlexZ33/pen/WNNWBdo
**https://codepen.io/AlexZ33/pen/QWWPRBp
默認狀況下使用inline-block類型時並列顯示的元素的垂直對齊方式能夠經過vertical-align屬性更改
CSS2.1以前,對於水平菜單的實現須要使用到float屬性。
通常會利用ul列表和li列表
https://codepen.io/AlexZ33/pen/pooBmmp
**https://codepen.io/AlexZ33/pen/abbxgoX
另外,還可讓a元素也屬於inline-block類型,而後使用背景色,並指定寬度, 使a元素佔據整個菜單。
https://codepen.io/AlexZ33/pen/abbxgOM
緣由是:瀏覽器的默認行爲是把inline元素間的空白字符(空格換行tab)渲染成一個空格,也就是咱們上面的代碼<li>換行後會產生換行字符,而它會變成一個空格,固然空格就佔用一個字符的寬度,因此你懂的...
方法一:既然是由於<li>換行致使的,那就能夠將<li>代碼所有寫在一排
方法二:
li { float: left; }
CSS2中新增的另外一種盒類型: inline-table類型
https://codepen.io/AlexZ33/pen/GRRLbdE
結果中表格先後的文字處於不一樣行中, 由於table元素屬於block類型,因此不能和其餘文字處於同一行,但若是將table元素修改爲inline-block類型,就能夠處於同一行了。
若是在display屬性中將元素設定爲list-item類型,能夠將多個元素做爲列表來顯示,同時在元素的開頭加上列表標記。
https://codepen.io/AlexZ33/pen/vYYMqQx
display: none
注意它和 visibility: hidden;
的區別
width
和 height
.padding
相關屬性設置。border
相關屬性設置。margin
相關屬性設置
一、https://gitee.com/turingitclub/css-learning/tree/dev/task01 task1
二、 ie的盒子模型 和 chrome的盒子模型有什麼不同?
--> 參考文檔 : https://developer.mozilla.org/zh-CN/docs/Learn/CSS/Building_blocks/The_box_model
而後能夠暫時跳過僞類選擇器,開始從新仔細看文本相關的樣式
固然,你也能夠選擇閱讀其它網站,好比W3School等上面相應的內容。