前端基础学习之CSS

一.CSS的基本介绍

前面已经学习了HTML,了解到HTML是一种超文本标记语言,它是使用标记标签来描述网页,而一般情况下HTML输入文本,如果想要将文本设置成好看的样式,就需要借助今天所学习CSS(Cascading Style Sheet)来实现,当浏览器读取到CSS样式时,就会按照这个样式对文本进行渲染,达到我们想要的文本效果。

二.CSS的引用方式

方法一:行内样式(同时行内样式的优先级最高,后文会讲到)

<div style="color: red;">今天天气真好</div>

方法二:内部样式(需要在head标签内加入style标签)

<head>
    <meta charset="UTF-8">
    <title>float</title>
    <style>
        #d1{
            border: 1px solid black;
        }
        .c1{
            height: 50px;
            width: 50px;
            background-color: blue;
            border: 1px solid red;
            float: left;
        }
        .c2{
            height:20px;
            background-color: darkgray;
        }
    </style>

方法三:外部样式(单独建立一个CSS文件,然后在在html文件中导入)

<link rel="stylesheet" href="此处写CSS的文件名">

三.CSS选择器

1.基本选器

  • 标签选择器
p {color: "red";}
  • ID选择器
#i1 {
  background-color: red;
}
  • 类选择器
.c1 {
  font-size: 14px;
}
p.c1 {
  color: red;
}
  • 通用选择器
* {
  color: yellow;
}

注意:标签中的class属性若有多个,应该用空格分开。

2.组合选择器

  • 后代选择器
li a {
  color: green;
}

注意:li和a之间要用空格隔开, 表示使li内部的a标签变成黄色。

  • 儿子选择器
div>a {
  font-size:20px;
}

选择所有父级是div标签的a标签,字体大小变成20px。

  • 毗邻选择器
div+p {
  margin: 5px;
}

选择所有紧接着div标签之后的p标签

  • 弟弟选择器
#i1~p {
  border: 2px solid royalblue;
}

ID为i1后面的所有的p标签(二者是同代关系)

3.属性选择器

/*用于选取带有指定属性的元素。*/
p[title] {
  color: red;
}
/*用于选取带有指定属性和值的元素。*/
p[title="213"] {
  color: green;
}

4.分组与嵌套

  • 分组:当有n个元素有同样的样式时,无需将其样式再写n遍,我们只需要将其元素名用逗号隔开即可,如下所示:
div, p,a {
  color: red;
  font-size:30px;
}
  • 嵌套:多种选择器可以混合使用,例如:(将c1内部类中的p标签字体颜色设置为红色)
.c1 p {
  color: red;
}

5.选择器的优先级

  1. 越靠近标签的优先级越高(就近原则)
  2. 权重的计算
    1. 内联样式1000(直接写在标签中的style)
    2. ID选择器100
    3. 类选择器10
    4. 元素选择器1
div#d1(101)   div.c1(11) 

注意:通过添加 !important方式来强制让样式生效,但并不推荐使用。因为如果过多的使用!important会使样式文件混乱不易维护。

6.伪类选择器

/* 未访问的链接 */
a:link {
  color: white;
}

/* 已访问的链接 */
a:visited {
  color: yelow;
} 

/* 鼠标移动到链接上 */(非常重要,划重点划重点)
a:hover {
  color: #FF00FF
} 

/* 选定的链接 */ (不常用)
a:active {
  color: #0000FF
}

/*input输入框获取焦点时样式*/
input:focus {
  outline: none;
  background-color: #eee;
}

7.伪元素选择器

/*在p元素之后插入内容*/
p:after {
  content:"[?]";
  color:blue;
} 
/*在p元素之前插入内容*/
p:before {
  content:"*";
  color:red;
}

以上两个伪元素选择器多用于清除浮动,关于浮动后面会讲到。

/*给首字母设置样式*/(不常用)
p:first-letter {
  font-size: 48px;
  color: red;
}

四.关于CSS的常用属性

1.字体属性

/*family为设置字体,size为字体大小,weight为字体粗细,color为字体颜色*/
div{
            font-family:"Microsoft JhengHei Light",serif;
            font-size: 20px;
            font-weight: bold;
            color:red;
        }

2.文本属性

  1. text-align 对齐(重要)
  2. text-decoration 装饰 (去除a标签的下划线(text-decoration: none))
  3. text-indent 首行缩进
div{
            text-align: center;
            text-decoration: none;
            text-indent: 10px;
        }

3.color属性

  1. red (直接写名字)
  2. #FF0000
  3. rgb(255, 0, 0) --> rgba(255,0,0,0.5)(a代表透明度)
        div{
            color:red;
        }
        div{
            color:#ffff;
        }
        div{
            color:rgb(255,255,255);
        }
        div{
            color:rgba(255,21,21,3);
        }

4.边框属性border

  1. border-width (边框宽度)
  2. border-style (边框样式)
  3. border-color (边框颜色)
  4. border-radius将边框变成圆角
       div{
            border-width: 20px;
            border-style: solid;
            border-color: #ffff;
        }
        简写:
        div{
            border:2px solid red;
            border-radius: 50%;
        }

5.背景属性

  1. background-color 背景颜色
  2. background-image 背景图片
        div{
            background-color: #204982;
            background-image: url();
        }
 背景重复
 repeat(默认):背景图片平铺排满整个网页
 repeat-x:背景图片只在水平方向上平铺
 repeat-y:背景图片只在垂直方向上平铺
 no-repeat:背景图片不平铺
*/
background-repeat: no-repeat; 
/*背景位置*/
background-position: right top;
/*background-position: 200px 200px;*/
简写为:background:rede url('图片名') no-repeat right top;
/*页面滚动,背景图片不动*/
        div{
            background-attachment: fixed;
        }

6.CSS盒子模型(分为以下四个内容)

  1. content (内容)
  2. padding (内填充) 调整内容和边框之间距离时使用这个属性
  3. border (边框)
  4. margin (外边距) 多用于调整调整标签之间的距离 (注意两个挨着的标签margin取最大值)
/*margin外边距*/
        body{
            margin-top: 20px;
            margin-bottom: 20px;
            margin-left: 20px;
            margin-right: 20px;
        }
 简写:
 		 div{
            margin:20px 10px 30px 50px;(上右下左)
        }
margin也常用来居中盒子
        div{
            margin: 0 auto;
        }
/*padding内填充*/
        body{
            padding-bottom: 20px;
            padding-top: 20px;
            padding-left:20px;
            padding-right:20px;
        }
 简写:
        div{
            padding:20px 30px 10px 5px;(上右下左)
        }

提供一个,用于四边;
提供两个,第一个用于上-下,第二个用于左-右;
如果提供三个,第一个用于上,第二个用于左-右,第三个用于下;
提供四个参数值,将按上-右-下-左的顺序作用于四边;

7.display属性

  1. inline(让其具有内联标签的特性)
  2. block (让其具有块级标签的特性)菜单里面的a标签可以设置成block
  3. inline-block(独占一行,也可设置高度和宽度)
  4. none (不让标签显示,不占位)

8.float(浮动)属性

  1. 多用于实现布局效果
    1. 顶部的导航条
    2. 页面左右分栏
  2. float
    1. 任何标签都可以浮动,浮动之后都会变成块级 a标签float之后就可以设置高和宽
  3. float取值:
    1. left:向左浮动
    2. right:向右浮动
    3. none:默认值,不浮动

浮动的框可以向左或向右移动,直到它的外边缘碰到包含框或另一个浮动框的边框为止。
由于浮动框不在文档的普通流中,所以文档的普通流中的块框表现得就像浮动框不存在一样。

9.clear属性

作用:
clear 清除浮动–> 清除浮动的副作用(内容飞出,父标签撑不起来)
clear取值:
1.left 在左侧不允许浮动元素。
2.right 在右侧不允许浮动元素。
3.both 在左右两侧均不允许浮动元素。
4.none 默认值。允许浮动元素出现在两侧。
5.inherit 规定应该从父元素继承 clear 属性的值。

.clearfix:after {
					content: "";
					display: "block";
					clear: both;
				}

注意:clear属性只会对自身起作用,而不会影响其他元素。

10.overflow溢出属性

取值 描述
visible 默认值。内容不会被修剪,会呈现在元素框之外。
hidden 内容会被修剪,并且其余内容是不可见的。
scroll 内容会被修剪,但是浏览器会显示滚动条以便查看其余的内容。
auto 如果内容被修剪,则浏览器会显示滚动条以便查看其余的内容。
inherit 规定应该从父元素继承 overflow 属性的值。

11.z-index

设置对象的层叠顺序。

  1. z-index 值表示谁压着谁,数值大的压盖住数值小的,
  2. 只有定位了的元素,才能有z-index,也就是说,不管相对定位,绝对定位,固定定位,都可以使用z-index,而浮动元素不能使用z-index
  3. z-index值没有单位,就是一个正整数,默认的z-index值为0如果大家都没有z-index值,或者z-index值一样,那么谁写在HTML后面,谁在上面压着别人,定位了元素,永远压住没有定位的元素。
  4. 从父现象:父亲怂了,儿子再牛逼也没用
#i2 {
  z-index: 1000;
}

12.opacity属性

用来定义透明效果。取值范围是0~1,0是完全透明,1是完全不透明。

13.定位(position)

  1. static

static 默认值,无定位,不能当作绝对定位的参照物,并且设置标签对象的left、top等值是不起作用的的。

  1. relative(相对定位)

相对定位是相对于该元素在文档流中的原始位置,即以自己原始位置为参照物。有趣的是,即使设定了元素的相对定位以及偏移值,元素还占有着原来的位置,即占据文档流空间。对象遵循正常文档流,但将依据top,right,bottom,left等属性在正常文档流中偏移位置。而其层叠通过z-index属性定义。

注意:position:relative的一个主要用法:方便绝对定位元素找到参照物。

  1. absolute(绝对定位)

定义:设置为绝对定位的元素框从文档流完全删除,并相对于最近的已定位祖先元素定位,如果元素没有已定位的祖先元素,那么它的位置相对于最初的包含块(即body元素)。元素原先在正常文档流中所占的空间会关闭,就好像该元素原来不存在一样。元素定位后生成一个块级框,而不论原来它在正常流中生成何种类型的框。

重点:如果父级设置了position属性,例如position:relative;,那么子元素就会以父级的左上角为原始点进行定位。这样能很好的解决自适应网站的标签偏离问题,即父级为自适应的,那我子元素就设置position:absolute;父元素设置position:relative;,然后Top、Right、Bottom、Left用百分比宽度表示。

另外,对象脱离正常文档流,使用top,right,bottom,left等属性进行绝对定位。而其层叠通过z-index属性定义。

猜你喜欢

转载自blog.csdn.net/w819104246/article/details/89297832