当前位置:学者斋 >

设计制作 >网页设计 >

CSS高级布局技巧

CSS高级布局技巧

IE8逐渐退出舞台,很多高级的`CSS特性都已被浏览器原生支持,那么CSS怎么布局?有哪些技巧呢?下面yjbys小编为大家分享css样式布局技巧如下:

CSS高级布局技巧

  用 empty 区分空元素

兼容性:不支持 IE8

假如我们有以上列表:

<p class="item">a</p>

<p class="item">b</p>

<p class="item"></p>

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

  用 :empty 选择空元素:

:empty {

display: none;

}

或者用 :not(:empty) 选择非空元素:

:not(:empty) {

border: 1px solid #ccc;

/* ... */

}

  用 :*-Of-Type 选择元素

兼容性:不支持 IE8

举例说明。

给第一个 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 还可以有其他类型的参数:

/* 偶数个 */

:nth-of-type(even)

/* only 第三个 */

:nth-of-type(3)

/* 每第三个 */

:nth-of-type(3n)

/* 每第四加三个,即 3, 7, 11, ... */

:nth-of-type(4n+3)

  用 calc 做流式布局

兼容性:不支持 IE8

左中右的流式布局:

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 和 vh 做全屏滚动效果

兼容性:不支持 IE8

vw 和 vh 是相对于 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('#39;);

}

section:nth-of-type(2) {

background-image: url('#39;);

}

section:nth-of-type(3) {

background-image: url('#39;);

}

section:nth-of-type(4) {

background-image: url('#39;);

}

body {

margin: 0;

}

p {

color: #fff;

font-size: 100px;

font-family: monospace;

}

  用 unset 做 CSS Reset

兼容性:不支持 IE

body {

color: red;

}

button {

color: white;

border: 1px solid #ccc;

}

/* 取消 section 中 button 的 color 设置 */

section button {

color: unset;

}

  用 column 做响应式的列布局

兼容性:不支持 IE9

nav {

column-count: 4;

column-width: 150px;

column-gap: 3rem;

column-rule: 1px dashed #ccc;

column-fill: auto;

}

h2 {

column-span: all;

}

标签: CSS 布局
  • 文章版权属于文章作者所有,转载请注明 https://xuezhezhai.com/sjzz/sjzz/90go41.html