有关CSS的高级布局技巧

巴扎黑
Lepaskan: 2017-03-14 11:36:10
asal
1549 orang telah melayarinya

随着 IE8 逐渐退出舞台,很多高级的 CSS 特性都已被浏览器原生支持,再不学下就要过时了。

用 
:empty
Salin selepas log masuk
Salin selepas log masuk
区分空元素

兼容性:不支持 IE8
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk

Demo
假如我们有以上列表:

a


b



我们希望可以对空元素和非空元素区别处理,那么有两种方案。

:empty
Salin selepas log masuk
Salin selepas log masuk

选择空元素:
.item:empty {
display: none;
}
或者用

:not(:empty)
Salin selepas log masuk

选择非空元素:
.item:not(:empty) {
border: 1px solid #ccc;
/* ... */
}

:*-Of-Type
Salin selepas log masuk
选择元素

兼容性:不支持 IE8
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk

举例说明。
给第一个 p 段落加粗:
p:first-of-type {
font-weight: bold;
}
给最后一个 img 加边框:
img:last-of-type {
border: 10px solid #ccc;
}
给无相连的 blockquote 加样式:

blockquote:only-of-type {
border-left: 5px solid #ccc;
padding-left: 2em;
}
让奇数列的 p 段落先死红色:

p:nth-of-type(even) {
color: red;
}
此外,

:nth-of-type
Salin selepas log masuk

还可以有其他类型的参数:

/* 偶数个 */
:nth-of-type(even)

/* only 第三个 */
:nth-of-type(3)

/* 每第三个 */
:nth-of-type(3n)

/* 每第四加三个,即 3, 7, 11, ... */
:nth-of-type(4n+3)

calc
Salin selepas log masuk
做流式布局

兼容性:不支持 IE8
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk

Demo
左中右的流式布局:

nav {
position: fixed;
left: 0;
top: 0;
width: 5rem;
height: 100%;
}
aside {
position: fixed;
right: 0;
top: 0;
width: 20rem;
height: 100%;
}

main {
margin-left: 5rem;
width: calc(100% - 25rem);
}

vw
Salin selepas log masuk
Salin selepas log masuk
vh
Salin selepas log masuk
Salin selepas log masuk
做全屏滚动效果

兼容性:不支持 IE8
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk


Demo

vw
Salin selepas log masuk
Salin selepas log masuk

vh
Salin selepas log masuk
Salin selepas log masuk

是相对于 viewport 而言的,所以不会随内容和布局的变化而变。

section {
width: 100vw;
height: 100vh;

display: flex;
align-items: center;
justify-content: center;
text-align: center;

background-size: cover;
background-repeat: no-repeat;
background-attachment: fixed;
}

section:nth-of-type(1) {
background-image: url('https://unsplash.it/1024/683?image=1068');
}
section:nth-of-type(2) {
background-image: url('https://unsplash.it/1024/683?image=1073');
}
section:nth-of-type(3) {
background-image: url('https://unsplash.it/1024/683?image=1047');
}
section:nth-of-type(4) {
background-image: url('https://unsplash.it/1024/683?image=1032');
}

body {
margin: 0;
}
p {
color: #fff;
font-size: 100px;
font-family: monospace;
}

unset
Salin selepas log masuk
做 CSS Reset

兼容性:不支持 IE
Salin selepas log masuk


Demo

body {
color: red;
}
button {
color: white;
border: 1px solid #ccc;
}

/* 取消 section 中 button 的 color 设置 */
section button {
color: unset;
}

column
Salin selepas log masuk
做响应式的列布局

兼容性:不支持 IE9
Salin selepas log masuk


Demo

nav {
 column-count: 4;
 column-width: 150px;
 column-gap: 3rem;
 column-rule: 1px dashed #ccc;
 column-fill: auto;
}

h2 {
 column-span: all;
}
(完)

Atas ialah kandungan terperinci 有关CSS的高级布局技巧 . Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!