CSS基础

作者: 夜阑w | 来源:发表于2018-11-25 19:16 被阅读0次

一、引入CSS的方式

内联式、嵌入式和外链式

1.内联式

<p style="color:red">paragraph</p>

2.嵌入式

<style type="text/css">
    p {
      background-color: #00539F;
      font-size: 2em;
      text-align: center;
    } 
</style>

3.外链式

<link rel="stylesheet" type="text/css" href="style.css">

二、CSS选择器

简单选择器

1.通配选择器

通配选择器可以匹配所有元素。下面的代码可以去掉默认的margin。

* {
  margin: 0;
}

2.标签选择器

使用标签进行选择,选中所有的该标签,一般用于语义标签和组合选择器。

p {
  font-size:12px;
}

3.id选择器

为标签设置id="ID名称",选择时使用#id选择器名称 {css样式代码;}

4.类选择器

为标签设置class="class名称",选择时使用.class选择器名称 {css样式代码;}

注意:class选择器与id选择器的区别:一个元素可以有多个class名称,一个class名称也可以被多个元素使用,但id选择器不可以,它是唯一的。另外id选择器的优先级要大于class选择器。

属性选择器

  • 多用于input标签。
  • input[name] {}:选中所有具有name属性的输入框。
  • input[type="password"]:选中所有类型为“密码”的输入框。
  • input[title~="flower"]:选中title属性包含单词 "flower" 的所有元素,属性中各个单词以空格分隔。
  • input[title*="demo"]:选中title属性包含“demo”的所有元素。
  • input[title^="demo"]:选中title属性以“demo”开头的所有元素。
  • input[title$="demo"]:选中title属性以“demo”结尾的 所有元素。

伪类选择器

  • a标签
  • a:link {}:选中未访问过的链接。
  • a:visited {}:选中已访问过的链接。
  • a:hover {}:鼠标移到链接上的样式。
  • a:active {}:鼠标在链接上按下时的样式。
  • a:focus {}:获得焦点时的样式。

伪元素

E:first-line {}:匹配E元素的第一行
E:first-letter {}:匹配E元素的第一个字母
E:before {}:在E元素之前插入生成的内容
E:after {}:在E元素之后插入生成的内容

组合选择器

  • h1,p {}:同时为一组选择器定义样式。

直接组合EF

p.warning { color: orange; }

后代组合E F

  • 选中article标签下的所有p元素
article p{
  color:red;
}

亲子组合E > F

  • 选中article标签下的第一代p元素article > p {}

  • 注意: 亲子选择器与后代选择器的区别是后代选择器可以选中所有子代,亲子选择器只选择第一代子代。

其他选择器

  • 选中id="introduction"下的第一个p标签:
.introduction p:nth-of-type(1) {
    color: blue;
}

更多:(http://www.ruanyifeng.com/blog/2009/03/css_selectors.html

三、层叠与继承

特异度级别

  • 内联:1000;id选择器:100;类、伪类:10;标签选择器、伪元素:1;

样式的的覆盖规则

  • 根据引入方式:优先级由高到低依次为:“内联属性”——>“嵌入”——>“外链”。
  • 按照特异度排序,后面的优先级高。
  • 特异度一样时,按照样式书写顺序,后面的优先级高。
  • 加有“!important”的样式,优先级最高:即无论哪一种情况,只要在样式上加了important,那么该样式的优先级最高。

关于继承

  • 继承,就是父元素的规则也会适用于子元素。
  • 对继承的元素来说,子元素自身的样式优先级高于从父级继承来的样式。

四、文本样式

  • font-family:字体设置
  • font-size:文字大小,可使用px,百分比等作为单位,取值也可为绝对值small和相对值smaller等。
  • font-style:斜体设置。取值可为normal、italic、oblique。
  • font-weight:文字的粗细程度,粗体为bord。
  • line-height:元素所属的行所占的高度,段落文字一般取值为1.4~1.8。也可用于竖直方向的居中。
  • text-align:文本在容器内的对齐方式(水平)。
  • vertical-align:竖直方向的对齐方式。
  • font缩写:font的众多属性可以集中在一条属性中写
h1 {
    /* 斜体 粗细 大小/行高 字体族 */
    font: italic bold 20px 'Times New Roman';
}

其他样式:

  • 将字母变为首字母大写:p {text-transform: capitalize;}(大写、小写同理)
  • 去掉超链接默认的颜色、下划线等样式:a {text-decoration: none;}
  • 去掉无序列表前的实心原点:li {list-style: none;}
  • 设置背景为图片:background-image: url("");
  • 设置背景图片不重复:background-repeat: no-repeat;
  • 设置背景位置:background-position: 10px;
  • 设置图像分不透明度:img {opacity: 0.6;}

五、盒模型

  • margin:外边距; border:边框; padding:内边距;content:内容
  • 盒模型中的width和height是content box的宽度
  • 对于margin、border、padding,均可为其设置top right bottom left的值,也可以进行缩写。
  • 边框样式border-style的取值有none | solid | dashed | dotted | double。
  • 设置边框圆角:border-radius: 5px;
  • 表格边框线合并:border-collapse: collapse;

六、CSS布局

注:可以使用百分比宽度进行布局。

使用inline-block

  • vertical-align 属性会影响到 inline-block元素,你可能会把它的值设置为 top。
  • 需要设置每一列的宽度。
  • 如果HTML源代码中元素之间有空格,那么列与列之间会产生空隙。

position

  • static(默认)、relative、absolute、fixed、sticky、inherit
  • 绝对定位(absolute):不占据常规流位置,相对于包含块进行偏移(包含块为最近一级外层元素position不为static的元素)
  • 相对定位(relative):相对于之前常规流位置发生偏移,原先位置仍然占据
  • 固定定位(fixed):相对于视窗进行定位,不再占有常规流位置

浮动(float)

  • 浮动元素会从常规流中脱离,漂浮在容器(包含块)左边或右边

  • 清除浮动:clear

常用的三栏布局方式

<!DOCTYPE html>
<html>

<head>
  <style type="text/css">
    .middle {
      width: 100%;
      float: left;
    }
    .main {
      margin: 0 200px;
      height: 400px;
      background: pink;
    }
    .left {
      width: 200px;
      height: 200px;
      float: left;
      background: blue;
      margin-left: -100%;        
    }
    .right {
      width: 200px;
      height: 200px;
      float: left;
      background: yellow;
      margin-left: -200px;                      
    }
    * {
      font-family: 'Courier New', Courier, monospace;
      font-size: 20px;   
    }
  </style>
</head>

<body>
  <div class="middle">
    <div class="main">ffffff</div>
  </div>
  <div class="left">side1</div>
  <div class="right">side2</div>
</body>

</html>

七、常用的居中方式

水平居中

  • 行内元素:对父元素设置text-align:center;
  • 定宽块状元素:设置左右margin值为auto;
  • 不定宽块状元素:设置子元素为display:inline,然后在父元素上设置text-align:center;
  • 通用方案:flex布局,对父元素设置display:flex;justify-content:center。

垂直居中

  • 父元素一定,子元素为单行内联文本:设置父元素的height等于行高line-height
  • 父元素一定,子元素为多行内联文本:设置父元素的display: inline-block,再设置vertical-align: middle;
  • 块状元素:设置子元素position:absolute 并设置top、bottom为0,父元素要设置定位为static以外的值,margin:auto;
  • 通用方案:flex布局,给父元素设置{display:flex; align-items:center;}。

相关文章

网友评论

      本文标题:CSS基础

      本文链接:https://www.haomeiwen.com/subject/huqmqqtx.html