海纳百川

CSS常见知识点回顾

2018-06-24  本文已影响0人  凛冬已至_123

本文章不涉及太基础的知识点,主要用来记忆常用的知识点

1.CSS常用单位

html {
  font-size: 10px; /* 不建议设置 font-size: 62.5%; 在 IE 9-11 上有偏差,具体表现为 1rem = 9.93px。 */
}

.sqaure {
  width: 5rem;  /* 50px */
  height: 5rem; /* 50px */
}
.container {
  width: 80%;
  margin: 5% auto;
  font-size: 200%;
}

相对于父元素尺寸设置的百分比设置,块级元素不要随便加width:100%

  <div class="box">box
    <span class="child">child</span>
  </div>

  <style>
    .box {
      color: red;
    }
    .child {
      border: 4px solid currentColor;
    }

  </style>
width: calc(90% - 15px);

2.box-sizing及相关知识点

box-sizing 用于更改用于计算元素宽度和高度的默认的 CSS 盒模型。
box-sizing: content-box 默认值

.box {
  width: 300px;
  border: 10px;
}

渲染出来的盒子宽度为 320px
box-sizing: border-box

.box {
  width: 300px;
  border: 10px;
  padding: 10px;
  box-sizing: border-box;
}

渲染出来的盒子宽度为 300px

3.表格样式

border-collapse
border-collapse 属性用于设置表格边框是分开还是合并。

table {
  border-collapse: collapse;
}

4. 清除浮动

<!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8">
  <title>JS Bin</title>
</head>
<body>
  <div class="box">
    <p>12121</p>
  <p>wewew</p>
  </div>

</body>
</html>
// style
p {
  background-color: red;
  float: left;
}

.box {
  background-color: blue;
  overflow: hidden;
}
.clearfix {
content: '';
clear: both;
display: block;
}

5.定位易忘点

.box {
  right: 30px;
  bottom: 30px;
  position: fixed;
}
.samecon h2{
      position: -webkit-sticky;
      position: sticky;
      top: 20px;
      background:#ccc;
      padding:10px 0;
}

6.BFC

BFC 全称 Block Formatting Context。

每个渲染区域用formatting context表示,它决定了其子元素将如何定位,以及和其他元素的关系和相互作用

在正常流中的盒子要么属于块级格式化上下文,要么属于内联格式化上下文

  1. 根元素;
  2. float属性不为none;
  3. position为absolute或fixed;
  4. display为inline-block, flex, 或者inline-flex;
  5. overflow不为visible;
  1. 内部的Box会在垂直方向,一个接一个地放置。
  2. Box垂直方向的距离由margin决定。属于同一个BFC的两个相邻Box的margin会发生重叠每个元素的margin box的左边,与包含块border box的左边相接触(对于从左往右的格式化,否则相反)。即使存在浮动也是如此。
  3. BFC的区域不会与float box重叠。
  4. BFC就是页面上的一个隔离的独立容器,容器里面的子元素不会影响到外面的元素。反之也如此。
  5. 计算BFC的高度时,浮动元素也参与计算
  1. margin 合并
  2. contain float

7. 响应式设计(不过多阐述)

  1. meta:媒体查询
//html
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no”>
//css
@media (min-width: 700px) {
  .layout {
    width: 600px;
  }
}
  1. style (只做提示,详解请自行搜索)

8.伪类与伪元素与样式引用

@important 'common.css'
p:nth-child(2)
{
background:#ff0000;
}

link visited hover active不做过多阐述,注意他们之间的顺序

a:link{
  color: blue;
}
a:visited{
  color: yellow;
}
a:hover{
  color: red;
}
a:active{
  color: pink;
}
.clearfix:after {
    content:"";
    display:block;
    clear:both;
}

9.元素居中的方式

  1. text-align 在父元素上设置 text-align: center 使文字/图片水平居中
.container {
  text-align: center;
}
  1. margin
.container {
  width: 80%;
  margin-left: auto;
  margin-right: auto;
}
  1. padding
.ct{
  padding: 40px 0;
  text-align: center;
  background: #eee;
}
  1. position:absolute
.dialog {
  position: absolute;
  left: 50%;
  top: 50%;
  margin-left: -200px;
  margin-top: -150px;
  width: 400px;
  height: 300px;
}
.dialog {
  position: absolute;
  left: 50%;
  top: 50%;
  transform: translate(-50%, -50%);
  width: 400px;
  height: 300px;
}
  1. vertical-align
.box img{
  vertical-align: middle;
  background: blue;
}
  1. table-cell
.box{
  width: 300px;
  height: 200px;
  border: 1px solid ;
  display: table-cell;
  vertical-align: middle;
  text-align: center;
}
  1. display: flex
.space {
  width: 100vw;
  height: 100vh;  /* 设置宽高以显示居中效果 */
  display: flex;  /* 弹性布局 */
  align-items: center;  /* 垂直居中 */
  justify-content: center;  /* 水平居中 */
}
  1. 最简单的方法
height: 100px;
line-height: 100px;

10. 浏览器兼容

  1. 属性前缀法(即类内部Hack):例如 IE6能识别下划线""和星号"* ",IE7能识别星号" *",但不能识别下划线"",IE6~IE10都认识"\9",但firefox前述三个都不能认识
  2. 选择器前缀法(即选择器Hack)
  3. IE条件注释法(即HTML条件注释Hack):针对所有IE(注:IE10+已经不再支持条件注释): ,针对IE6及以下版本:。这类Hack不仅对CSS生效,对写在判断语句里面的所有代码都会生效
.box{
  color: red;
  _color: blue; /*ie6*/
  *color: pink; /*ie67*/
  color: yellow\9;  /*ie/edge 6-8*/
}
<!–-[if IE 7]>
<link rel="stylesheet" href="ie7.css" type="text/css" />
<![endif]–->
.clearfix:after{
  content: '';
  display: block;
  clear: both;
}
.clearfix{
  *zoom: 1; /* 仅对ie67有效 */
}
.target{
  display: inline-block;
  *display: inline;
  *zoom: 1;
}
 <!--[if lt IE 9]>
    <script src="https://oss.maxcdn.com/html5shiv/3.7.3/html5shiv.min.js"></script>
    <script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script>
  <![endif]-->

11. css布局

  <style>
    #content:after{
      content: '';
      display: block;
      clear: both;
    }
    .aside{
      width: 200px;
      height: 500px;
      background: yellow;
      float: right;
    }
    .main{
      margin-right: 210px;
      height: 400px;
      background: red;
    }

    #footer{
      background: #ccc;
    }

  </style>

  <div id="content">
    <div class="aside">aside</div>
    <div class="main">content</div>
  </div>
  <div id="footer">footer</div>
<!DOCTYPE html>
<html>
<head>
<style>
     html,body{
       margin:0;
       padding:0;
     }
     #header {
       height: 40px;
       background: red;
     }
     #content{
        display:flex;
     }
     .aside{
       background-color:yellow;
       width: 200px;
       height: 400px;
     }
     .main{
       background-color:green;
       flex:1;
     }
</style>
</head>
<body>
  <div id="header">header</div>
  <div id="content">
    <div class="aside">左边栏</div>
    <div class="main">中间栏</div>
  </div>

</body>
</html>

结束语

本文章用于自我复习

上一篇下一篇

猜你喜欢

热点阅读