摘要:將元素顯示為內聯元素,元素前后沒有換行符。我們知道內聯元素是無法設置寬高的,所以一旦將元素的屬性設為,設置屬性和是沒有用的。這個屬性值融合了和的特性,即是它既是內聯元素,又可以設置和。
CSS 中 inline 元素可以設置 padding 和 margin 嗎?
行內元素設置width,height無效。但是設置margin和padding是有效的。
行內非替換元素的外邊距不會改變一個元素的行高
div, form, table, header, aside, section, article, figure, figcaption, h1~h6, nav, p, pre, blockqoute, canvas, ol, ul, dl span, a, img, label, input, select, textarea, br, i, em, strong, small, button, sub, sup, codeCSS box-sizing 的值有哪些?
允許您以特定的方式定義匹配某個區域的特定元素。
box-sizing: content-box|border-box|inherit;
一般在做自適應的網頁設計的時候用,用這個屬性網頁結構才不會被破壞。
常用的值:
content-box,border和padding不計算入width之內
padding-box,padding計算入width內
border-box,border和padding計算入width之內,其實就是怪異模式了~
兼容性
-webkit-box-sizing: 100px; // for ios-safari, android
-moz-box-sizing:100px; //for ff
box-sizing:100px; //for other
BFC(block formatting context)塊級格式化上下文。是一個html盒子,里面的元素左對齊
定義:
float的值不為none
position的值不為static或者relative
display的值為 table-cell, table-caption, inline-block, flex, 或者 inline-flex中的其中一個
overflow的值不為visible
毗鄰塊盒子的垂直外邊距折疊只有他們是在同一BFC時才會發生。如果他們屬于不同的BFC,他們之間的外邊距將不會折疊
BFC的作用
1、 清除內部浮動
我們在布局時經常會遇到這個問題:對子元素設置浮動后,父元素會發生高度塌陷,也就是父元素的高度變為0。解決這個問題,只需要把把父元素變成一個BFC就行了。常用的辦法是給父元素設置overflow:hidden。
2、 垂直margin合并
在CSS當中,相鄰的兩個盒子的外邊距可以結合成一個多帶帶的外邊距。這種合并外邊距的方式被稱為折疊,并且因而所結合成的外邊距稱為折疊外邊距。
折疊的結果:
兩個相鄰的外邊距都是正數時,折疊結果是它們兩者之間較大的值。
兩個相鄰的外邊距都是負數時,折疊結果是兩者絕對值的較大值。
兩個外邊距一正一負時,折疊結果是兩者的相加的和。
這個同樣可以利用BFC解決。關于原理在前文已經講過了。
3、 創建自適應兩欄布局
在很多網站中,我們常看到這樣的一種結構,左圖片+右文字的兩欄結構。
在圖片和文字的樣式中都加入overflow:hidden使他變為塊級格式化上下文。
(我對BFC的理解)[https://www.jianshu.com/p/764...]
html5:語義化標簽;增強型表單;視頻和音頻;canvas;svg繪圖;地理定位;拖放api;webworker;storage(sessionStorage和localStorage);webSocket;
HTML5的十大新特性
css3:
(1) CSS3實現圓角(border-radius),陰影(box-shadow),邊框圖片border-image
(2) 對文字加特效(text-shadow、),強制文本換行(word-wrap),線性漸變(linear-gradient)
(3)旋轉,縮放,定位,傾斜:transform:rotate(90deg) scale(0.85,0.90) translate(0px,-30px) skew(-9deg,0deg);
(4) 增加了更多的CSS選擇器、多背景、rgba();
(5)在CSS3中唯一引入的偽元素是 ::selection ;
(6) 媒體查詢(@media),多欄布局(flex)
CSS 清除浮動的方法?也就是防止元素高度塌陷
1、父元素變為BFC塊級格式化上下文overflow:hidden;
缺點:元素溢出無法控制顯示,不要用
2、clear:{
clear:both;
}
3、偽元素after和before,clear:both
IE6-7不支持:after,使用 zoom:1觸發 hasLayout
鑒于 IE/Mac的市場占有率極低,我們直接忽略掉,最后精簡的代碼如下:
.clearfix:after { content:"."; display:block; height:0; visibility:hidden; clear:both; } .clearfix { *zoom:1; }
1) display:block 使生成的元素以塊級元素顯示,占滿剩余空間;
2) height:0 避免生成內容破壞原有布局的高度。
3) visibility:hidden 使生成的內容不可見,并允許可能被生成內容蓋住的內容可以進行點擊和交互;
4)通過 content:"."生成內容作為最后一個元素,至于content里面是點還是其他都是可以的,,有些版本可能content 里面內容為空,不推薦這樣做的,firefox直到7.0 content:”" 仍然會產生額外的空隙;after在元素之后插入content的內容。
5)zoom:1 觸發IE hasLayout。
通過分析發現,除了clear:both用來閉合浮動的,其他代碼無非都是為了隱藏掉content生成的內容,這也就是其他版本的閉合浮動為什么會有font-size:0,line-height:0。
CSS水平垂直居中常見方法總結
1、元素在文檔流里是緊密布局的,不能直接使用top left直接移動元素,容易造成混亂。
使用position:relative;元素在文檔流中位置不浮動來改變元素的居中。
content{ margin-top:-50% of height;<--偽代碼--> position:relative; top:50%;<--或者使用transform:translateY(50%);--> }
2、彈性布局flex
body { display: flex; align-items: center; /*定義body的元素垂直居中*/ justify-content: center; /*定義body的里的元素水平居中*/ } .content { width: 300px; height: 300px; background: orange; }
3、將父容器設置為display:table
然后將子元素也就是要垂直居中顯示的元素設置為 display:table-cell 。
但是,這是不值得推薦的,因為會破壞整體的布局
談談CSS預處理器
目前最主流的CSS預處理器是LESS、SASS和Stylus
添加一些選擇器的特殊效果。
格式是:選擇器:偽類
after 元素后插入內容
before 元素之前插入內容
empty 元素內空的子元素
精華帖CSS選擇器優先級總結
id > 類選擇器 > 標簽選擇器>
圣杯布局、雙飛翼布局、Flex布局和絕對定位布局
CSS display 屬性的值及作用?display 屬性規定元素應該生成的框的類型。
其中常用的的有none、inline、block、inline-block。分別的意思是:
1) none: 元素不會顯示,而且改元素現實的空間也不會保留。但有另外一個 visibility: hidden, 是保留元素的空間的。
2) inline: display的默認屬性。將元素顯示為內聯元素,元素前后沒有換行符。我們知道內聯元素是無法設置寬高的,所以一旦將元素的display 屬性設為 inline, 設置屬性height和width是沒有用的。此時影響它的高度一般是內部元素的高度(font-size)和padding。
3) block: 將元素將顯示為塊級元素,元素前后會帶有換行符。設置為block后,元素可以設置width和height了。元素獨占一行。
4) inline-block:行內塊元素。這個屬性值融合了inline 和 block 的特性,即是它既是內聯元素,又可以設置width和height。
px是固定的像素,一旦設置了就無法因為適應頁面大小而改變。
em和rem相對于px更具有靈活性,他們是相對長度單位,意思是長度不是定死了的,更適用于響應式布局。
對于em和rem的區別一句話概括:em相對于父元素,rem相對于根元素。
(1)有兩種, IE 盒子模型、W3C 盒子模型;
(2)盒模型: 內容(content)、填充(padding)、邊界(margin)、 邊框(border);
(3)區 別: IE的content部分把 border 和 padding計算了進去;
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/113729.html
摘要:現在回到我們這一章節的標題,將它做下補充關于那些事四之基于構架基礎樣式庫基礎庫構思為什么要做基礎庫我上一章節的末尾拋出了幾個問題假設你要做一個游戲單頁面,網頁上并不存在表單內容,那么你就要移除一些冗余的代碼,開始自定義樣式來滿足自己的需求。 前言 先來回顧一下前幾章節,我們都說了哪些內容: CSS Reset 歷史 與 Normalize.css 介紹 Normalize.css...
摘要:現在回到我們這一章節的標題,將它做下補充關于那些事四之基于構架基礎樣式庫基礎庫構思為什么要做基礎庫我上一章節的末尾拋出了幾個問題假設你要做一個游戲單頁面,網頁上并不存在表單內容,那么你就要移除一些冗余的代碼,開始自定義樣式來滿足自己的需求。 前言 先來回顧一下前幾章節,我們都說了哪些內容: CSS Reset 歷史 與 Normalize.css 介紹 Normalize.css...
摘要:上例中打印的結果是對中的名都做了處理,使用對象來保存原和混淆后的對應關系。結合實踐在處直接使用中名即可。如因為只會轉變類選擇器,所以這里的屬性選擇器不需要添加。 showImg(http://gtms01.alicdn.com/tps/i1/TB15w0HLpXXXXbdaXXXjhvsIVXX-600-364.png); CSS 是前端領域中進化最慢的一塊。由于 ES2015/201...
摘要:下面開始對進行簡單的介紹,關于兩者的差異區別可以看問答平臺使用遇到的問題和有什么本質區別沒簡單介紹關于對的介紹,這里引用咀嚼之味針對官方介紹翻譯的的中文版本。目前已經成為了的替代方案是無可爭議的事情了。 前言 近期在翻閱陳舊的歷史資料,整理之前飽受爭議的CSS Reset問題,不過好像十多年過去,現在大家統一了口徑,紛紛推薦使用Normalize.css,包括Bootstrap都進行...
閱讀 999·2019-08-30 15:55
閱讀 3440·2019-08-30 13:10
閱讀 1267·2019-08-29 18:45
閱讀 2347·2019-08-29 16:25
閱讀 2106·2019-08-29 15:13
閱讀 2421·2019-08-29 11:29
閱讀 551·2019-08-26 17:34
閱讀 1485·2019-08-26 13:57