本文介绍: 目录一、CSS简介1.CSS是什么?2.CSS的作用3.CSS的构成二、CSS选择器1.基础选择器(1).标签选择器(2)类选择器(3)标签选择器(4) 通配符选择器2.复合选择器(1)后代选择器(包含选择器)(2)子选择器(3)并集选择器(4)伪类选择器三、基本属性1.字体属性1.1 字体系列fontfamily1.2 字体大小 fontsize1.3 字体粗细 font-weight 1.4 文字样式

目录

一、CSS简介

1.CSS是什么?

2.CSS的作用

3.CSS的构成

二、CSS选择器

  4. 元素显示模式转换


CSS是层叠样式表(Cascading Style Sheet )的简称

是一种标记语言用于设置页面外观样式

实现结构样式分离,便于开发维护

用于美化页面布局页面

CSS有选择器和一条及多条声明组成

CSS选择器:根据不同需求把不同的标签选出来(选择标签用的)

CSS选择器分为两类:基础选择器符合选择器

也称为元素选择器,用html签名称作为选择器,按标签名分类,为页面中某一类型标签指定统一的CSS样式

差异化选择不同的标签,单独选一个或者某几个标签

书写格式

多类名选择器 

可以一个标签指定多个类名

1.书写格式

2.使用场景

<!DOCTYPE html&gt;
<html lang="en"&gt;

<head&gt;
    <meta charset="UTF-8"&gt;
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        .box {
            width: 100px;
            height: 150px;
        }

        .red {

            background-color: red;
        }

        .green {

            background-color: green;
        }
    </style>
</head>

<body>
    <div class="box red"></div>
    <div class="box green"></div>
    <div class="box red"></div>
</body>

</html>

HTML:设置id选择器 ,CSS: “#”来定义

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        .box {
            width: 100px;
            height: 150px;
        }

        .red {

            background-color: red;
        }

        .green {

            background-color: green;
        }

        #blue {
            background-color: skyblue;
        }
    </style>
</head>

<body>
    <div class="box red"></div>
    <div class="box green"></div>
    <div class="box" id="blue"></div>
</body>

</html>

   与类选择器的区别

  1. 类选择器(class)可多次使用,好比一个人可以有多个名字,同个名字可以被多个使用
  2. id选择器相当于身份证,具有唯一,不可重复
  3. d选择器和类选择器区别在于使用次数上
  4. 类选择器用的最多,id选择器一般用于页面唯一性的元素上,和JavaScript搭配使用 

       “ * 定义,表示选取页面中所有元素,通配符选择器不需要调用,自动给所有的元素使用样式
        特殊情况才使用 

 * {
            margin: 0;
            padding: 0;
        }

 用于设置页面的内外边

两个或者多个基础选择器通过不同方式组合而成(更准确,高效的选择目标元素)

元素1   元素2   {样式声明}

  •         元素1和元素2中间用空格隔开
  •         元素1时父级,元素2时子级,最终选择的是元素2
  •         元素2 可以是儿子也可以是孙子,是元素1的后代即可
  •         元素1 和元素2可以是任意基础选择器 
  h1 span {
            color: blue;
            font-size: 12px;
            font-weight: 400;
        }

        只能选择最近一级的子元素

元素1>元素2 {样式声明}

  • 元素1和元素2中间用大于号隔开
  • 元素1是父级,元素2是子级,最终选择的是元素2
  • 元素2只能是亲儿子 
  h1>span {
            color: blue;
            font-size: 12px;
            font-weight: 400;
        }



<h1> 沁园春·长沙 <span>【毛泽东】</span> </h1>

 

可以选择多组标签,同时为他们定义相同的样式

元素1 , 元素2{样式声明}

  • 元素1和元素2中间用逗号隔开
  • 逗号为“和”的意思
  • 通常用于集体声明 

 .p1,
        .p3,
        .p5,
        .p7 {
            color: blue;
            font-size: 20px;
        }

<p class="p1">独立寒秋, <span>湘江北去</span> ,橘子洲头。</p>
   
    <p class="p3">鹰击长空 , <span>鱼翔浅底</span> ,万类霜天竞自由。</p>
   
    <p class="p5">携来百侣曾游,忆往昔峥嵘岁月稠。</p>
   
    <p class="p7">指点江山,激扬文字,粪土当年万户侯。</p>
 

 

向选择器添加特殊效果

用“”表示——例   a:hover

  a:hover {
            background-color: #ff6700;
        }

链接伪类选择器

注意事项

:focus 伪类选择器

 body{fontfamily:’Microsoft YaHei’,tahoma,arial,’Hiragino Sans GB’;}

font-size:16px;

font-weight: 400;

font-style:normal;

格式:font : font-style  font-weight  font-size/line-height   font-family;

  •  使用font属性时,不能更换顺序,以空格隔开
  • 需要设置的属性可以省略,但必须保留font-size和font-family,否则font属性不起作用

color: red

 textaligncenter;

                     属性: 

left

 文本左对齐
right  文本右对齐
center  文本居中

textdecoration

                      属性: 

none  默认没有下划线
underline 下划线
overline 上划线
line-through 删除线

textindent:2em;

                    属性:

 px 长度可以时负值
 em 相对单位,相当于当前元素的1个文字大小

line-height:20px;

  •  行间距为上间距+文本高度+下间距

给页面元素添加背景样式

background-imageurl(链接);

div {
            background: url(images/1.png);
        }

 background-repeat:norepeat;

  • repeat                                     背景图片平铺(默认
  • no-repeat                                不平铺
  • repeat-x                                  横向上平铺
  • repeat-y                                  纵向上平铺

 background-positiontop center;

方位名词

两个值的顺序无关

指定一个方位名词,另一个值省略,则第二个默认居中对齐

精确单位 参数值有精确的坐标顺序一定是x在前
指定一个数值该数值为x坐标,另一个默认垂直居中
混合单位 数值是精确单位和方位名词混合使用
一个值是x坐标,第二个值是y坐标

  background-attachmentfixed

background:背景颜色 背景图背景平铺 背景图像固定 背景图位置

body {
            background: url(images/bg.jpg) no-repeat center top fixed;
        }

 background:rgba(0,0,0,0.3)

.subnav {
    float: left;
    width: 190px;
    height: 421px;
    background: rgba(0, 0, 0, .3);
}

 在元素标签内部的style属性中设定CSS样式(适合修改简单样式)

<div class="red" style="background-color: red;">123</div>
  •             style其实就是标签的属性
  •             双引号,符合CSS规范
  •             可以控制当前的标签样式
  •             结构样式混乱

  将CSS代码取出来单独放到<style>标签中

 <style>
        .red {
            width: 100px;
            height: 100px;
            background-color: red;
        }
        .green {
            width: 100px;
            height: 100px;
            background-color: green;
        }
    </style>
  •             一般放在<head>标签中,理论上可以放到任何地方
  •             控制整个页面的元素样式设置
  •             部分结构和样式相分离

 新建一个后缀为.css的样式文件,把CSS代码都放入此文件中

 <link rel="stylesheet" href="style.css">

  •         在HTML页面中,使用<link>标签引入这个文件
  •         <link  rel=”stylesheet”  href=”css文本路径“>
  •         结构和样式分离 

 <h1~h6>,<p>,<div>,<ul>,<ol>,<li>

  •                 一行只能放一个块元素
  •                 可以设置宽度高度
  •                 默认宽度是容器的100%
  •                 可以包含任何标签

     注意:

  •                 <p>标签里面不能放块级元素,特别不能放<div>
  •                 h1~h6也是文字块级标签,不能放其他块级元素

 <a>,<strong>,<b>,<em>,<i>,<del>,<s>,<u>,<span>

  •                  一行可以放多个行内元素
  •                 不能直接设置宽度高度
  •                 本身内容的宽度
  •                 只能容纳文本或者其他行内元素

   注意:

  •                 链接里面不能再放链接
  •                 特殊情况链接<a>里面可以放块级元素
  •                 但是给<a>转换一下会计模式安全

<img/>,<input/>,<td>

  •                同时具有块元素和行内元素的特点
  •                 一行可以放多个行内元素
  •                 可以设置宽度,高度,外边距及内边距
  •                 本身内容的宽度


相同选择器设置相同的样式(解决样式冲突

  •         遵循就近原则
  •         样式不冲突不会层叠

 两个相同的样式会遵循就近原则执行更靠近元素的哪一个样式,下面代码中skyblue更靠近div,所以现实的颜色为蓝色

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        div {
            width: 200px;
            height: 200px;
            background-color: pink;
        }

        div {
            background-color: skyblue;
        }
    </style>
</head>

<body>
    <div></div>
</body>

</html>

(1)   子标签会继承父标签的某些样式

        子元素继承父元素的样式(例:text– ,font- ,line-等元素开头及color元素

(2)  行高的继承

 font :12px/1.5  microsoft yahei;

  •             行高可以跟单位也可以不跟单位
  •             子元素没有设置行高会继承父元素的行高
  •             当前子元素的文字大小*1.5
  •             body行高设为1.5,最大的优势是子元素可以根据自己文字大小自动调节行高
<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        div {
            width: 200px;
            height: 200px;
            background-color: pink;
            font: 12px/1.5 'microsoft yahei';
        }
    </style>
</head>

<body>
    <div>
        <p>123</p>
    </div>
</body>

</html>

 

 同一个元素指定多个选择器,会有优先级产生 。

        选择器相同,执行层叠性
        选择器不同,根据选择器权重执行

  • 选择器权重
 继承 或者“ * ” 0,0,0,0
元素选择器 0,0,0,1
类选择器,伪类选择器  0,0,1,0
ID选择器 0,1,0,0
行内样式style=”” 1,0,0,0
 !important 无穷

 注意点

  •         权重由4位数字组成,不会进位
  •         等级判断从左到右
  •         继承的权重是0
  •         如果元素没有直接选中,不管父元素权重多高,子元素继承的权重都为0权重叠

重叠

复合选择器,会有权重叠加,需要计算权重

  •             dix ul li             0,0,0,3
  •            .nav ul il            0,0,1,2
  •             a:hover            0,0,1,1
  •             .nav a              0,0,1,1
<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        .box {
            background-color: skyblue;
        }

        div {
            width: 200px;
            height: 200px;
            background-color: pink;
            font: 12px/1.5 'microsoft yahei';
        }
    </style>
</head>

<body>
    <div class="box">
        <p>123</p>
    </div>
</body>

</html>

  网页布局本质——利用css摆盒子
  准备相关网页元素,基本上是盒子,利用css设置好盒子样式,摆到相应位置,往盒子装内容

 border-width 边框粗细 单位 px
border-style 边框样式  soild  实线边框   dashed   虚线边框  dotted  点线边框
border-color 边框颜色

 复合写法border: 1px solid red;  没有顺序

边框分开写法

  •  bordertop: 1px solid red;                           只设定上边框
  •  borderbottom: 1px solid red;                     只设定下边框
  •  borderleft: 1px solid red;                           只设定左边框
  •  borderright: 1px solid red;                         只设定右边框
<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        .box {
            width: 200px;
            height: 200px;
            border-top: 2px solid pink;
            border-bottom: 2px solid red;
            border-left: 2px solid greenyellow;
            border-right: 2px solid blueviolet;
        }
    </style>
</head>

<body>
    <div class="box">
    </div>
</body>

</html>

表格的细线边框:

bordercollapse:collapse;               表示相邻边框合并在一起

注意:
        边框影响盒子实际大小测量盒子时要减去边框宽度

padding-left 左内边距
padding-right 右内边距
padding-top 上内边距
padding-bottom 下内边距

 复合格式

padding:5px; 代表上下左右都有5像素内边距
padding:5px 10px; 代表上下有5像素,左右有10像素
padding:5px 10px 20px; 代表上内边距5像素,左右内边距10像素  下内边距20像素
padding:5px 10px 20px 30px; 代表上内边距5像素,右内边距10像素,下内边距20像素,左内边距30像素        顺时针

     盒子受影响情况:

盒子已经有了高度和宽度,再指定内边距,会撑大盒子,内边距padding影响盒子实际大小

解决方法:要保证盒子和效果图像大小保持一致,则让width/height减去多出来的内边距大小

  • 不会影响盒子大小的情况

盒子本身没有设置width/height属性,此时padding不会撑开盒子

margin-left 外边
margin-right 外边
margin-top 上外边距
margin-bottom 下外边距

复合格式

margin:5px; 代表上下左右都有5像素外边距
margin:5px 10px; 代表上下有5像素,左右有10像素
margin:5px 10px 20px; 代表上外边距5像素,左右外边距10像素  下内边距20像素
margin:5px 10px 20px 30px; 代表上外边距5像素,右外边距10像素,下外边距20像素,左外边距30像素        顺时针

块级盒子水平居中

  •             盒子必须指定宽度
  •             盒子左右的外边距都设置为auto
  •             行内元素或者行内块元素水平居中给父元素添加textalign:center即可

写法:      margin: 0 auto ;

 外边距合并

     1.相邻块元素垂直外边距的合并

上下两个块元素都设置了外边距,取两个值中的较大者


解决方案:尽量只给一个盒子添加margin值

2. 嵌套块元素垂直外边距的塌陷

对于两个嵌套关系(父子关系)的块元素,父元素有上外边框,子元素也有上外边框,此时父元素会塌陷较大的外边距值


 解决方案

  •                         可以为父元素定义上边框
  •                         可以为父元素定义上内边框
  •                         可以为父元素添加overfiow:hidden
  •                         浮动盒子没有外边距合并问题

 清除内外边距
 不同浏览器带有不同的默认内外边距,清除网页元素的内外边距

  * {
            margin: 0;   /*  清除外边距 */
            padding: 0; /*  清除内边距 */
}

 注意:
                行内元素为了照顾兼容性,尽量只设置左右内外边距,不设置上下内外边距
                但是转化为块级或者行内块元素就行

 borderradius:lenght;

  •         参数值可以是数值也可以是百分比形式
  •         矩形:设置为高度的一半
  •         简写:                  左上角                  border-top-leftradius
                                        右上角                   border-toprightradius
                                        右下角                   border-bottom-rightradius
                                        左下角                   border-bottom-leftradius

box-shadow

h-shadow 必需,水平阴影
v-shadow 必需。垂直阴影位置。允许负值
blur 可选。模糊距离(虚实)
 spread 可选。阴影尺寸
color  可选。阴影颜色
inset 可选。将外部阴影outset)改为内部阴影

 注意:

  1.  默认的是外部阴影outset),但是不可以写这个单词,否则导致阴影无效
  2. 盒子阴影不占用空间,不会影响其他盒子排列

 text-shadow

 h-shadow 必需,水平阴影
v-shadow 必需。垂直阴影的位置。允许负值
blur 可选。模糊距离(虚实)
color 可选。阴影的颜色 

  准则:多个块级元素纵向排列标准流,多个块级元素横向排列找浮动

float :属性

   1.浮动元素会脱离标准流 

  •         脱标
  •         浮动的盒子不再保留原先的位置

    2.浮动的元素会一行显示并且元素顶部对齐 

  •         浮动的元素是互相贴靠在一起(没有缝隙),如果父级宽度装不下这些浮动的盒子,多出的盒子会另起一行对齐

   3. 浮动的元素会具有行内块元素的特性 

  •         任何元素都可以浮动
  •         如果块级盒子没有设置宽度,默认宽度和父级一样宽,但是添加浮动后,他的大小   根据内容来决定

浮动元素经常和标准流父级搭配使用

  • 第一准则:多个块级元素纵向排列找标准流,多个块级元素横向排列找浮动
  • 第二准则:先设置盒子大小,之后设置盒子位置 

注意点

  •     浮动和标准流的父盒子搭配
  •     一个元素浮动,理论上其余兄弟元素也需要浮动
  •     浮动的盒子指挥影响浮动盒子后面标准流,不会影响前面的标准流 

本质

清除浮动的本质清除浮动元素脱离标准流造成的影响 

语法

 clear:left;

  • left                              不允许左侧有浮动
  • right                            不允许右侧有浮动
  • both                            同时清除左右两边浮动的影响用的最多 

策略

 闭合浮动: 只让浮动在父盒子内部影响,不影响父盒子外面的其他盒子 

方法

 1. 额外标签法(隔离

 在最后一个浮动的子元素后面添加一个额外的标签,添加清除浮动样式

  •             优点:简单易懂,书写方便
  •             缺点:1.添加许多无意义标签,结构化比较
                           2.新的空标签必须为块级元素

 2. 父级元素添加overflow属性

属性值设为hidden,autoscroll

overflow:hidden;

   3. 父级添加after伪元素

 . clearfix:after {
content: “”;
display: block;
height: 0;
clear: both;
visibil ity: hidden;
}
.clearfix { /* IE6、7专有*/
*zoom: 1;
}

  •             缺点:照顾低版本浏览器
  •             优点:没有增加标签,结构更简单

 4.  父级添加双伪元素

   . clearfix:before, .clearfix:after {
content:””;
display:table;
}
. clearfix:after {
clear :both;
}
. clearfix {
*zoom: 1;
}

  •            优点:代码更简洁
  •            缺点:照顾低版本浏览器
  •            代表网站小米腾讯 

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注