初识CSS及盒子模型

CSS学习




前言

本文主要围绕什么是css、css选择器、css常用属性以及盒子模型展开介绍。


一、CSS是什么?

CSS是层叠样式表(Cascading Style Sheets)。是一种用来表现网页样式的计算机语言。CSS是能够真正做到网页表现与内容分离的一种样式设计语言。网页有多层结构,通过CSS可以为每一层设置样式,用户能看到最上的一层,CSS用来设置网页中元素的样式。

1.使用CSS修改元素的样式的三种方式

  1. 行内样式(内联样式)
    在标签内部通过style属性来设置元素的样式
<p color: rgb(47, 90, 49);font-size: 20px;>超文本标记语言</p>

缺点:只能对一个标签有效,当样式发生变化时不方便维护。
2. 内部样式
将样式编写到head标签中的style标签里

 <style>
     h1{
         color: darkblue;
         background-color: rgb(6, 95, 95);
         font-family: 'Courier New', Courier, monospace;
       }
     p{
         color: rgb(172, 21, 21);
      }
 </style>

优点:可以为多个标签设置样式,通过CSS选择器来选中元素并为其设置样式。
缺点:只能对一个网页起作用,不能跨页面使用。

3. 外部样式
将CSS样式编写在一个外部的CSS文件里,然后通过link标签引入外部文件

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

优点:外部样式表用link标签引入,意味着可以随意引用,使样式在不同的页面中复用,将样式编写外部CSS文件,可以使用浏览器的缓存机制,从而加快网页的加载速度,提高用户体验。

2.CSS基本语法

/*CSS基本语法:选择器 声明块*/
/*选择器:通过选择器选中页面中指定的元素*/
/*声明块:通过声明块为指定元素设置样式*/
p{
    color: rgb(80, 134, 26);
    font-size: 20px;
}

.box{
    color: rgb(47, 90, 49);
    font-size: 20px;
}
#box{
	color: rgb(27, 90, 49);
    font-size: 20px;
}

是名值对结构,以“:”连接,以“;”结尾

二、CSS选择器

1.常用选择器

  • 元素选择器:根据标签名来选中指定元素
    语法:标签名{}
p{
    color: rgb(80, 134, 26);
    font-size: 20px;
}
  • id选择器:根据id值来选择一个元素
    语法:#id属性值{}
 #two{
    color: rgb(52, 27, 192);
    font-size: 20px;
} 
  • 类选择器:根据元素的class属性选中一组元素
    语法:.class属性值{}
 #three{
    color: rgb(52, 27, 192);
    font-size: 20px;
} 
  • 通配选择器:选中页面中所有元素
    语法:*{}
*{
    color:#000;
    font-size: 20px;
}

2.复合选择器

  • 交集选择器:选择同时复合多个条件的元素
    语法:选择器1选择器2…{}
div span{
    color:#bfc;
    font-size: 20px;
}
  • 交集选择器:同时选择多个选择器对应的元素4
    语法:选择器1、选择器2、选择器3…{}
h1 p span{
    color:#bfc;
    font-size: 20px;
}

3.关系选择器

先来认识一下元素的关系:

  • 父元素
  • 子元素
  • 祖先元素
  • 后代元素
  • 兄弟元素

  • 子元素选择器:选中指定父元素的子元素
    语法:父元素>子元素{}
div>span{
    color:#bfc;
    font-size: 20px;
}
  • 后代元素选择器:选中指定元素内的指定后代元素
    语法:祖先 后代{}
div p span {
    color:#bfc;
    font-size: 20px;
}

else
选择下一个兄弟元素 语法:前一个+下一个{}
选择下面所有兄弟元素 语法:兄~弟{}

4.属性选择器

  • [属性名]选择含有该属性的元素
  • [属性名=属性值]选择含有该属性和属性值的元素
  • [属性名^=属性值]选择含有该属性和以该属性值为开头的元素
  • [属性名$=属性值]选择含有该属性和以该属性值结尾的元素
  • [属性名*=属性值]选择含有该属性和包含属性值的元素
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>属性选择器</title>
    <style>
    /*[属性名]选择含有该属性的元素*/
        p[title] {
            color: #bfc;
        }
         /*[属性名=属性值]选择含有该属性和属性值的元素*/
        p[title=abc] {
            color: brown;
        }
        /*[属性名^=属性值]选择含有该属性和以该属性值为开头的元素*/
        p[title^=abcd] { 
            color: tomato;
        }
        /*[属性名$=属性值]选择含有该属性和以该属性值结尾的元素*/
        p[title$=ef] {
            color: blue;
        }
        /*[属性名*=属性值]选择含有该属性和包含属性值的元素*/
        p[title*=def] {
            color: blue;
        }
    </style>
</head>
<body>
    <p title="abc">我是p1元素</p>
    <p title="abcdef">我是p2元素</p>
    <p title="abcdef">我是p3元素</p>
</body>
</html>

5.伪类选择器

伪类是用来描述一个元素的特殊状态

  • ul>li:first-child 选中第一个元素
  • ul>li:last-child 选中最后一个元素
  • ul>li:nth-child() 选中第n个元素
  • ul>li:nth-child(2n) 选中序号为偶数的元素
  • ul>li:nth-child(2n+1) 选中序号为奇数的元素
<style>
/*选中第一个元素*/
ul>li:first-child{
    color: #bfc;
}
/*选中最后一个元素*/
ul>li:last-child{
    color: #bfc;
}
/*选中第n个元素*/
ul>li:nth-child(){
    color: #bfc;
}
/*选中序号为偶数的元素*/
ul>li:nth-child(2n){
    color: #bfc;
}
/*选中序号为奇数的元素*/
ul>li:nth-child(2n+1){
    color: #bfc;
}
</style>

6.超链接的伪类

<style>
/*未访问过的连接*/
a:link{
    color: #bfc;
}
/*访问过的连接*/
a:visited{
    color: #bfc;
}
/*用来表示鼠标移入的状态*/
a:hover{
    color: #bfc;
}
/*用来表示鼠标点击时的状态*/
a:active{
    color: #bfc;
}
</style>

7.伪元素

使用::开头 来表示页面中一些特殊并不真实存在的元素(特殊的位置)

  • ::first-letter 表示选中第一个字母
  • ::first-line 表示选中第一行
  • ::selection 表示选中的内容
  • ::before 表示元素的开始位置
  • ::after 表示元素的最后位置
    (::before ::after必须结合content属性)

其他的内容

优先级

  • 内联框架 1,0,0,0
  • id选择器 0,1,0,0
  • 类选择器、属性选择器或伪类 0,0,1,0
  • 元素和伪元素 0,0,0,1
  • 通配选择器 0,0,0,0
    !import优先级最高,尽量不用

三、 CSS常用属性

属性描述
color: rgb(10, 2, 17);设置颜色
font-size: 2pc;设置字号
background-color: blueviolet;设置背景颜色
font-family:设置字体样式
width:设置宽度
heigh:设置高度
background-repeat:设置是否平铺

更多属性请查看

四、盒子模型

CSS-将页面中所有元素都设置为一个举行的盒子,将元素设置为矩形的盒子,对页面的布局就变成不同的盒子摆放到不同的位置。
每个盒子的组成
内容区(content)
边框(border)
内边距(padding)
外边距(margin)

1.内容区(content)

元素中所有子元素和文本内容都在内容区中排列,大小由width属性和height属性来设置。

2.边框(border)

边框属于盒子的边缘,设置边框至少需要设置三个属性
1.边框宽度 border-width:10px;
2.边框颜色 border-color:red;
3.边框样式 border-style:solid;

border-width 指定边框的宽度,可省略,有默认值3px.
用来指定4个方向边框的宽度,四个值:上、右、下、左
border-color 指定边框的颜色,同时分别指定4个方向的颜色,可省略(默认值为black)
border-style 指定边框样式(默认值:none)
solid表示实线、dotted表示点状虚线、dashed表示虚线、double表示双线

border-xx含义
border-top: 0px;上边的边框
border-bottom: 0px;下边的边框
border-left: 0px;左边的边框
border-right: 0px;右边的边框

border简写属性:可设置边框所有相关样式,且无顺序要求

3.内边距(padding)

内边距的设置会影响盒子的大小,背景颜色等于内容分区的颜色。
盒子的可见框的大小由内容区、内边距和边框共同决定。

padding-xx含义
padding-top: 0px;上边的内边距
padding-bottom: 0px;下边的内边距
padding-left: 0px;左边的内边距
padding-right: 0px;右边的内边距

padding简写属性:可设置内边距(方向:上、右、下、左)

4.外边距(margin)

外边距只会影响盒子的位置,不影响可见框的大小。

margin-xx含义
margin-top: auto;上外边距(正值)下边的元素移动
margin-bottom: auto;下外边距(正值)盒子往左移
margin-left: auto;左外边距(正值)盒子往右移
margin-right: auto;右外边距(默认情况下不会产生任何效果)

margin简写属性:可设置外边距。

5.盒子的水平方向布局

元素的水平布局由以下几个属性共同决定:
margin-left
border-left
padding-left
width
padding-right
border-right
margin-right
以上的值相加=其父元素的内容区宽度
若不满足,则称过度约束,等式会自动调整。

注:width、margin-left、margin-right可设置为auto,

  1. 若将宽度和一个外边距设置为auto,则宽度最大。
  2. 若width、margin-left、margin-right均为auto,则width最大,外边距等于0.
  3. 若margin-left、margin-right的值为auto,width的值固定,则水平居中。

6.盒子的垂直方向布局

默认情况下父元素的高度会被内容撑开,子元素在父元素内容区中排列,若子元素>父元素,则溢出,用overflow属性可以设置父元素如何处理溢出的子元素。

overflow含义
overflow: auto;根据需要生成滚动条
overflow: hidden;溢出的元素会被隐藏
overflow: scroll;生成两个滚动条
overflow: visible;默认值,仍会溢出
overflow-x: auto;水平处理
overflow-y: auto;垂直处理

7.盒子外边距的折叠

外边距的折叠:相邻的垂直方向的外边距会发生重叠现象。
兄弟元素间垂直相邻外边距(均为正值)会取两者中间较大值,(一正一负)取两者和,(均负)取绝对值较大的。
父子元素间相邻外边距子元素的外边距会传递给父元素。

8.行内元素的盒子模型

  • 行内元素不支持设置宽度和高度
  • 行内元素可以设置padding、border、margin。

display属性:用来展示元素的显示类型

  1. inline 将元素设置为行内元素
  2. block 将元素设置为块元素
  3. inline-block 将元素设置为行内块元素(既可以设置高度和宽度,又不会独占一行)
  4. table 将元素设置为表格
  5. none 元素不在页面中显示

visiblity属性:用来设置元素的显示状态

  1. visible 默认值,元素在页面中正常显示
  2. hidden 元素在页面中隐藏,不显示(占据位置)

总结

本文主要围绕什么是css、css选择器、css常用属性以及盒子模型展开介绍。css的属性及盒子模型方面的知识广博,需要常用常记。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值