您好,登錄后才能下訂單哦!
這篇文章主要介紹“怎么運用CSS復位”的相關知識,小編通過實際案例向大家展示操作過程,操作方法簡單快捷,實用性強,希望這篇“怎么運用CSS復位”文章能幫助大家解決問題。
01、運用CSS復位
CSS復位能夠在不同的瀏覽器上堅持共同的款式風格。您能夠運用CSS reset 庫Normalize等,也能夠運用一個更簡化的復位辦法:
* {
box-sizing: border-box;
margin: 0; padding: 0;
}
現在元素的 margin 和 padding 已為0,box-sizing能夠管理您的CSS盒模型布局。
留意:假如你遵從接下來承繼 box-sizing講解的這個技巧, 你不需求在以上代碼中增加box-sizing 特點。
02、承繼box-sizing
從 html 元素承繼 box-sizing :
html {
box-sizing: border-box;
}
*, *:before, *:after {
box-sizing: inherit;
}
如此在插件或其它組件里改動 box-sizing 變得簡略。
03、運用 :not() 挑選器來決定表單是否顯現邊框
先為元素增加邊框
/* 增加邊框 */
.nav li {
border-right: 1px solid #666;
}
為最終一個元素去除邊框
/* 去掉邊框 */
.nav li:last-child {
border-right: none;
}
不過不要這么做,運用 :not() 偽類來到達相同的作用:
.nav li:not(:last-child)
{
border-right: 1px solid #666;
}
當然,你也能夠運用 .nav li + li 或許 .nav li:first-child ~ li ,可是 :not()更加明晰,具有可讀性。
04、為 body 元素增加行高
不用為每一個
,<h*> 元素逐個增加 line-height,直接增加到 body 元素:
body {
line-height: 1.5;
}
文本元素能夠很簡單地承繼 body 的款式。
05、筆直居中任何元素
不!這絕不是黑魔法,真的能夠筆直居中任何元素:
html, body {
height: 100%; margin: 0;
}
body {
-webkit-align-items: center;
-ms-flex-align: center;
align-items: center;
display: -webkit-flex;
display: flex;
}
這還不夠?筆直方向,水平方向?任何元素,任何時刻,任何地址?CSS-Tricks 有篇好文 講到了各種居中的技巧。
留意: IE11 對 flexbox 的支撐有點 bug。
06、逗號分隔列表
使列表的每項都由逗號分隔:
ul > li:not(:last-child)::after {
content: ",";
}
因最終一項不加逗號,能夠運用 :not() 偽類。
留意:這一技巧對于無障礙,特別是屏幕閱讀器而言并不抱負。并且復制粘貼并不會帶走CSS生成的內容,需求留意。
07、運用負的 nth-child 來挑選元素
運用負的 nth-child 能夠挑選 1 至 n 個元素。
li {
display: none;
}
/* 挑選第 1 至第 3 個元素并顯現出來 */
li:nth-child(-n+3) {
display: block;
}
或許你已經把握了怎么運用 :not()這個技巧,試下這個:
/* 挑選第 1 至第 3 個元素并顯現出來 */
li:not(:nth-child(-n+3)) {
display: none;
}
如此簡略!
08、運用 SVG 圖標
沒有理由不運用 SVG 圖標:
.logo {
background: url("logo.svg");
}
SVG 在一切分辨率下都能夠杰出縮放,并且支撐一切 IE9 今后的瀏覽器,丟掉你的 .png, .jpg, 或 .gif-jif-whatev 文件吧。
留意: 針對僅有圖標的按鈕,假如 SVG 沒有加載成功的話,以下款式對無障礙有所幫助:
.no-svg .icon-only:after {
content: attr(aria-label);
}
09、運用 "形似貓頭鷹" 的挑選器
這個姓名可能比較生疏,不過通用挑選器 (*) 和 相鄰兄弟挑選器 (+) 一同運用,作用特殊:
* + * {
margin-top: 1.5em;
}
在此示例中,文檔流中的一切的相鄰兄弟元素將都將設置 margin-top: 1.5em 的款式。
更多 "形似貓頭鷹" 的挑選器,可參閱 A List Apart 上面 Heydon Pickering 的文章。
10、運用 max-height 來樹立純 CSS 的滑塊
max-height 與 overflow hidden 一同來樹立純 CSS 的滑塊:
.slider {
max-height: 200px;
overflow-y: hidden;
width: 300px;
}
.slider:hover {
max-height: 600px;
overflow-y: scroll;
}
鼠標移入滑塊元素時增大它的 max-height 值,便能夠顯現溢出部分。
11、發明格子等寬的表格
table-layout: fixed 能夠讓每個格子堅持等寬:
.calendar {
table-layout: fixed;
}
無痛的 table 布局。
12、運用 Flexbox 去除剩余的外邊距
與其運用 nth-, first-, 和 last-child 去除列之間剩余的空隙,不如運用 flexbox 的space-between 特點:
.list {
display: flex;
justify-content: space-between;
}
.list .person { flex-basis: 23%;
}
列之間的空隙總是均勻持平。
當 元素沒有文本內容,但有 href 特點的時分,顯現它的 href 特點:
a[href^="http"]
:empty::before {
content: attr(href);
}
適當簡潔。
13、給 "默許" 鏈接界說款式
給 "默許" 鏈接界說款式:
a[href]:not([class])
{
color: #008000;
text-decoration: underline;
}
經過 CMS 體系刺進的鏈接,通常沒有 class 特點,以上款式能夠鑒別它們,并且不會影響其它款式。
14、共同筆直節奏
通用挑選器 (*) 跟元素一同運用,能夠堅持共同的筆直節奏:
.intro > * {
margin-bottom: 1.25rem;
}
共同的筆直節奏能夠供給視覺美感,增強內容的可讀性。
15、固定份額盒子
要創立具有固定份額的一個盒子,一切你需求做的就是給 div 設置一個 padding:
.container {
height: 0;
padding-bottom: 20%;
position: relative;
}
.container div {
border: 2px dashed #ddd;
height: 100%;
left: 0;
position: absolute;
top: 0;
width: 100%;
}
運用20%的padding-bottom使得框等于其寬度的20%的高度。與視口寬度無關,子元素的div將堅持其寬高比(100%/ 20%= 5:1)。
16、為破碎圖象界說款式
只要一點CSS就能夠美化破碎的圖象:
img {
display: block;
font-family: Helvetica, Arial, sans-serif;
font-weight: 300;
height: auto;
line-height: 2;
position: relative;
text-align: center;
width: 100%;
}
以增加偽元素的規律來顯現用戶信息和URL的引用:
img:before {
content:
"We're sorry, the image below is broken :
(";
display: block;
margin-bottom: 10px;
}img:after {
content: "(url: " attr(src) ")";
display: block;
font-size: 12px;
}
了解更多關于這類款式的技巧 Ire Aderinokun的 原帖.
17、用 rem 來調整大局巨細;用 em 來調整部分巨細
在根元素設置根本字體巨細后 (html { font-size: 100%; }), 運用 em 設置文本元素的字體巨細:
h3 {
font-size: 2em;
}
p { font-size: 1em;
}
然后設置模塊的字體巨細為 rem:
article {
font-size: 1.25rem;
}
aside .module { font-size: .9rem;
}
現在,每個模塊變得獨立,更簡單、靈活的款式便于維護。
18、躲藏沒有靜音、自動播放的影片
這是一個自界說用戶款式表的不錯的技巧。防止在加載頁面時自動播放。假如沒有靜音,則不顯現視頻:
video[autoplay]
:not([muted]) {
display: none;
}
再次,咱們運用了 :not() 的長處。
19、運用挑選器:root來操控字體彈性
在呼應式布局中,字體巨細應需求依據不同的視口進行調整。你能夠核算字體巨細依據視口高度的字體巨細和寬度,這時需求用到:root:
:root {
font-size
: calc(1vw + 1vh + .5vmin);
}
現在,您能夠運用 root em
body {
font: 1rem/1.6 sans-serif;
}
20、為更好的移動體會,為表單元素設置字體巨細
當觸發的下拉列表時,為了防止表單元素在移動瀏覽器(ios Safari 等等)上的縮放,加上font-size:
//code from
http://caibaojian.com/css-protips
.htmlinput[type="text"],
input[type="number"],
select,textarea {
font-size: 16px;
}
這些技巧適用于最新版的 Chrome, Firefox, Safari, Opera, Edge, 以及 IE11。
21個有用的CSS小技巧,來幫你把CSS技術提高到高檔水平 [Github上有8000多個star]。包含Flexbox、REM、:not()挑選器、負的nth-child等。
01、運用CSS復位
CSS復位能夠在不同的瀏覽器上堅持共同的款式風格。您能夠運用CSS reset 庫Normalize等,也能夠運用一個更簡化的復位辦法:
* {
box-sizing: border-box;
margin: 0; padding: 0;
}
現在元素的 margin 和 padding 已為0,box-sizing能夠管理您的CSS盒模型布局。
留意:假如你遵從接下來承繼 box-sizing講解的這個技巧, 你不需求在以上代碼中增加box-sizing 特點。
02、承繼box-sizing
從 html 元素承繼 box-sizing :
html {
box-sizing: border-box;
}
*, *:before, *:after {
box-sizing: inherit;
}
如此在插件或其它組件里改動 box-sizing 變得簡略。
03、運用 :not() 挑選器來決定表單是否顯現邊框
先為元素增加邊框
/* 增加邊框 */
.nav li {
border-right: 1px solid #666;
}
為最終一個元素去除邊框
/* 去掉邊框 */
.nav li:last-child {
border-right: none;
}
不過不要這么做,運用 :not() 偽類來到達相同的作用:
.nav li:not(:last-child)
{
border-right: 1px solid #666;
}
當然,你也能夠運用 .nav li + li 或許 .nav li:first-child ~ li ,可是 :not()更加明晰,具有可讀性。
04、為 body 元素增加行高
不用為每一個
,<h*> 元素逐個增加 line-height,直接增加到 body 元素:
body {
line-height: 1.5;
}
文本元素能夠很簡單地承繼 body 的款式。
05、筆直居中任何元素
不!這絕不是黑魔法,真的能夠筆直居中任何元素:
html, body {
height: 100%; margin: 0;
}
body {
-webkit-align-items: center;
-ms-flex-align: center;
align-items: center;
display: -webkit-flex;
display: flex;
}
這還不夠?筆直方向,水平方向?任何元素,任何時刻,任何地址?CSS-Tricks 有篇好文 講到了各種居中的技巧。
留意: IE11 對 flexbox 的支撐有點 bug。
06、逗號分隔列表
使列表的每項都由逗號分隔:
ul > li:not(:last-child)::after {
content: ",";
}
因最終一項不加逗號,能夠運用 :not() 偽類。
留意:這一技巧對于無障礙,特別是屏幕閱讀器而言并不抱負。并且復制粘貼并不會帶走CSS生成的內容,需求留意。
07、運用負的 nth-child 來挑選元素
運用負的 nth-child 能夠挑選 1 至 n 個元素。
li {
display: none;
}
/* 挑選第 1 至第 3 個元素并顯現出來 */
li:nth-child(-n+3) {
display: block;
}
或許你已經把握了怎么運用 :not()這個技巧,試下這個:
/* 挑選第 1 至第 3 個元素并顯現出來 */
li:not(:nth-child(-n+3)) {
display: none;
}
如此簡略!
08、運用 SVG 圖標
沒有理由不運用 SVG 圖標:
.logo {
background: url("logo.svg");
}
SVG 在一切分辨率下都能夠杰出縮放,并且支撐一切 IE9 今后的瀏覽器,丟掉你的 .png, .jpg, 或 .gif-jif-whatev 文件吧。
留意: 針對僅有圖標的按鈕,假如 SVG 沒有加載成功的話,以下款式對無障礙有所幫助:
.no-svg .icon-only:after {
content: attr(aria-label);
}
09、運用 "形似貓頭鷹" 的挑選器
這個姓名可能比較生疏,不過通用挑選器 (*) 和 相鄰兄弟挑選器 (+) 一同運用,作用特殊:
* + * {
margin-top: 1.5em;
}
在此示例中,文檔流中的一切的相鄰兄弟元素將都將設置 margin-top: 1.5em 的款式。
更多 "形似貓頭鷹" 的挑選器,可參閱 A List Apart 上面 Heydon Pickering 的文章。
10、運用 max-height 來樹立純 CSS 的滑塊
max-height 與 overflow hidden 一同來樹立純 CSS 的滑塊:
.slider {
max-height: 200px;
overflow-y: hidden;
width: 300px;
}
.slider:hover {
max-height: 600px;
overflow-y: scroll;
}
鼠標移入滑塊元素時增大它的 max-height 值,便能夠顯現溢出部分。
11、發明格子等寬的表格
table-layout: fixed 能夠讓每個格子堅持等寬:
.calendar {
table-layout: fixed;
}
無痛的 table 布局。
12、運用 Flexbox 去除剩余的外邊距
與其運用 nth-, first-, 和 last-child 去除列之間剩余的空隙,不如運用 flexbox 的space-between 特點:
.list {
display: flex;
justify-content: space-between;
}
.list .person { flex-basis: 23%;
}
列之間的空隙總是均勻持平。
當 元素沒有文本內容,但有 href 特點的時分,顯現它的 href 特點:
a[href^="http"]
:empty::before {
content: attr(href);
}
適當簡潔。
13、給 "默許" 鏈接界說款式
給 "默許" 鏈接界說款式:
a[href]:not([class])
{
color: #008000;
text-decoration: underline;
}
經過 CMS 體系刺進的鏈接,通常沒有 class 特點,以上款式能夠鑒別它們,并且不會影響其它款式。
14、共同筆直節奏
通用挑選器 (*) 跟元素一同運用,能夠堅持共同的筆直節奏:
.intro > * {
margin-bottom: 1.25rem;
}
共同的筆直節奏能夠供給視覺美感,增強內容的可讀性。
15、固定份額盒子
要創立具有固定份額的一個盒子,一切你需求做的就是給 div 設置一個 padding:
.container {
height: 0;
padding-bottom: 20%;
position: relative;
}
.container div {
border: 2px dashed #ddd;
height: 100%;
left: 0;
position: absolute;
top: 0;
width: 100%;
}
運用20%的padding-bottom使得框等于其寬度的20%的高度。與視口寬度無關,子元素的div將堅持其寬高比(100%/ 20%= 5:1)。
16、為破碎圖象界說款式
只要一點CSS就能夠美化破碎的圖象:
img {
display: block;
font-family: Helvetica, Arial, sans-serif;
font-weight: 300;
height: auto;
line-height: 2;
position: relative;
text-align: center;
width: 100%;
}
以增加偽元素的規律來顯現用戶信息和URL的引用:
img:before {
content:
"We're sorry, the image below is broken :
(";
display: block;
margin-bottom: 10px;
}img:after {
content: "(url: " attr(src) ")";
display: block;
font-size: 12px;
}
了解更多關于這類款式的技巧 Ire Aderinokun的 原帖.
17、用 rem 來調整大局巨細;用 em 來調整部分巨細
在根元素設置根本字體巨細后 (html { font-size: 100%; }), 運用 em 設置文本元素的字體巨細:
h3 {
font-size: 2em;
}
p { font-size: 1em;
}
然后設置模塊的字體巨細為 rem:
article {
font-size: 1.25rem;
}
aside .module { font-size: .9rem;
}
現在,每個模塊變得獨立,更簡單、靈活的款式便于維護。
18、躲藏沒有靜音、自動播放的影片
這是一個自界說用戶款式表的不錯的技巧。防止在加載頁面時自動播放。假如沒有靜音,則不顯現視頻:
video[autoplay]
:not([muted]) {
display: none;
}
再次,咱們運用了 :not() 的長處。
19、運用挑選器:root來操控字體彈性
在呼應式布局中,字體巨細應需求依據不同的視口進行調整。你能夠核算字體巨細依據視口高度的字體巨細和寬度,這時需求用到:root:
:root {
font-size
: calc(1vw + 1vh + .5vmin);
}
現在,您能夠運用 root em
body {
font: 1rem/1.6 sans-serif;
}
20、為更好的移動體會,為表單元素設置字體巨細
當觸發的下拉列表時,為了防止表單元素在移動瀏覽器(ios Safari 等等)上的縮放,加上font-size:
//code from
http://caibaojian.com/css-protips
.htmlinput[type="text"],
input[type="number"],
select,textarea {
font-size: 16px;
}
這些技巧適用于最新版的 Chrome, Firefox, Safari, Opera, Edge, 以及 IE11。
關于“怎么運用CSS復位”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識,可以關注億速云行業資訊頻道,小編每天都會為大家更新不同的知識點。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。