web前端之css

什么是CSS?

层叠样式表(英文全称:Cascading Style Sheets)是一种用来表现HTML(标准通用标记语言的一个应用)或XML(标准通用标记语言的一个子集)等文件样式的计算机语言。CSS不仅可以静态地修饰网页,还可以配合各种脚本语言动态地对网页各元素进行格式化。

web前端之css

CSS 能够对网页中元素位置的排版进行像素级精确控制,支持几乎所有的字体字号样式,拥有对网页对象和模型样式编辑的能力。

CSS使用

CSS介绍

css可以在head中通过style标签内部直接编写css,但是此时的css样式只针对此html页面。还能通过link标签引入外部css文件的方式,此方式对于多个有相同样式需求的页面便体现出它的优势。最后,也可以在标签内直接写,但是此方式会使页面越来越复杂,而且它是权级最高的,覆盖其他的style样式。

web前端之css

语法结构
选择器 {
	属性名:属性值
}

注释语法: /* 注释内容 */

CSS选择器

基本选择器

标签选择器

标签选择器通过标签名直接查找

/* 查找所有div标签 */
div {
	width: 200px;
	height: 200px;
	background-color: red;
}

类选择器

通过标签的class值查找

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>css</title>
    <style>
        /* 查找所有class值含有one的标签 */
        .one {
            width: 200px;
            height: 200px;
            background-color: red;
        }
    </style>
</head>
<body>
<div class="one"></div>
</body>
</html>

id选择器

通过标签id值查找

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>css</title>
    <style>
        /* 查找id值为two的标签 */
        .two {
            width: 200px;
            height: 200px;
            background-color: red;
        }
    </style>
</head>
<body>
<div id="two"></div>
</body>
</html>

通用选择器

/* 查找body内所有标签 */
* {
	font-size: 16px;
}

组合选择器

<div>
	<p>
		<span></span>
	</p>
</div>

如上图,为了区分嵌套标签之间的关系,我们发明了一种称呼。span是p的儿子,是div的孙子,也可以说是div的后代;p是div的儿子,也是div的后代,是span的父亲;div是p的父亲,也是span的爷爷,也可以说是他们的祖先。

有了上面的共识,我们再来讨论接下来的选择器。

后代选择器

/* 查找div内所有的span */
div span {
	color: red;
}

儿子选择器

/* 查找div内所有的儿子span */
div > span {
	color: red;
}

毗邻选择器

/* 查找同级别下面紧挨着的第一个span(不能有其他标签间隔) */
div + span {
	color: red;
}

弟弟选择器

/* 查找同级别下面所有的span(不需要紧挨着) */
div ~ span {
	color: red;
}

属性选择器

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>css</title>
    <style>
        /* 查找含有custom属性的标签 */
        [custom] {
            width: 200px;
            height: 200px;
            background-color: red;
        }
        /* 查找custom属性值为x的标签 */
        [custom='x'] {
            width: 200px;
            height: 200px;
            background-color: red;
        }
        /* 查找custom属性值为x的div标签 */
        div[custom='x'] {
            width: 200px;
            height: 200px;
            background-color: red;
        }
    </style>
</head>
<body>
<div custom="x"></div>
</body>
</html>

分组和嵌套

选择器之间还能够组合使用。

/* 多个相同选择器并列使用 */
div,span,p {  /* 查找div或者span或者p */
            color: red;
        }
/* 多个不同选择器并列使用 */
div,#d1,.c1 {  /* 标签查找div id查找d1 类查找c1*/
            color: red;
        }
/* 不并列同样可以使用组合选择器 */
.c1 p {   /*查找class为c1的后代p标签*/
            color: red;
        }
/* 直接筛选 */
div#d1 {  /*查找id为d1的div标签*/
         color: red;
}

div.c1 {  /* 查找class为c1的div标签 */
       color: red;
}

伪类选择器

/* 鼠标悬浮在a标签上显示橘色 */
a:hover {
           color: orange;
}


/* 点击输入框背景颜色变成红色 */
input:focus {
           background-color: red;
}

伪元素选择器

CSS 伪元素用于设置元素指定部分的样式。

/* 所有p标签内容的第一个字符为48px */
p:first-letter {
	font-size: 48px;  /* 字体大小 */
	color: red;
}
/* 在所有p标签之前加入hello,并且为红色 */
p:before {
	content: 'hello';
	color: red;
}
/* 在所有p标签之后加入hello,并且为橘色 */
p:after {
	content: 'hello';
	color: orange;
}

选择器优先级

css样式生效遵循就近原则,样式离标签近的起作用。选择器的优先级为:行内样式 > id选择器 > 类选择器 > 标签选择器

字体 font

web前端之css

/* 字体相关 css 样式*/
p {
	font-size: 16px; /* 字体大小 */
	font-weight: bolder; /* 字体粗细 也可为 0-700权重值 */
	/* font-weight: lighter; */
	color: red; /* 字体颜色 */
	text-align: center; /* 字体对齐方式 */
	text-decoration: none; /* 文字装饰 (主要用于去除a标签点击后默认的下划线) */
	text-indent: 32px; /* 首行缩进 */
}

背景属性 backgound

web前端之css

/*背景颜色*/
background-color: red;

/*背景图片*/
background-image: url('1.jpg');

/* 背景重复
repeat(默认): 背景图片平铺排满整个网页
repeat-x:背景图片只在水平方向上平铺
repeat-y:背景图片只在垂直方向上平铺
no-repeat:背景图片不平铺
*/
background-repeat: no-repeat;

/*背景位置*/
background-position: left top; /* 左上 */
/*background-position: 200px 200px;*/

支持简写:

background:#336699 url('1.png') no-repeat left top;

边框 border

web前端之css

属性介绍:

  • border-width 边框宽度
  • border-style 边框风格
    • none 无边框
    • dotted 点状虚线边框
    • dashed 矩形虚线边框
    • solid 实线边框
  • border-color 边框颜色
div {
	border-width: 2px;
	border-style: solid;
	border-color: red;

	/* 简写 */
	/* border: 2px solid red; */
}

边框的风格样式可以每条边都有所不同,

div {
	border-top-style: dotted;
	border-top-color: red;
	border-right-style: solid;
	border-bottom-style: dotted;
	border-left-style: none;
}

border-radius

此属性能够实现圆角边框。如果div为正方形,设置此值为div长或高的一般即可得到一个圆形。

display属性

web前端之css

用于控制HTML元素的显示效果。

  • display:"none" —— HTML文档中元素存在,但是在浏览器中不显示。一般用于配合JavaScript代码使用。
  • display:"block" —— 默认占满整个页面宽度,如果设置了指定宽度,则会用margin填充剩下的部分。
  • display:"inline" —— 按行内元素显示,此时再设置元素的width、height、margin-top、margin-bottom和float属性都不会有什么影响。
  • display:"inline-block" —— 使元素同时具有行内元素和块级元素的特点。
上一篇:公司新来的00后卷王之王,老油条表示是真干不过...


下一篇:Web Components 系列(二)—— 关于 Custom Elements