css基础知识

[TOC]

## 注释

在CSS内,注释代码的方法是 `/* */`,例如:

```
<style>
.c1{
background-color: #5924F1;
height: 48px;
}
.c2{
background-color: #2459a2;
height: 48px;
} */
</style>
```

## 定义和引用

### 直接定义

- 为 `<div>` 着色,这个颜色代码来自:REB颜色对照表,height 表示这个 div 的高度

```
<div style="background-color:#2459a2;height: 48px;">这是内容</div>
```

### id选择器

在 `head` 内以 `.` 开头定义好样式,然后在 `body` 内使用 `class` 引用这个样式的代码

```
<head>
<style>
#i1{
background-color: #2459a2;
height: 48px;
}
</style>
</head>

<body>
<div id="i1">这是内容</div>
<br />
<span id="i1">这是内容</span>
</body>
```

### class选择器

在 `head` 内以 `.` 开头定义好样式,然后在 `body` 内使用 `class` 引用这个样式的代码

```
<head>
<style>
.c1{
background-color: #2459a2;
height: 48px;
}
.c2{
background-color: #9443a2;
height: 48px;
}
</style>
</head>

<body>
<div class="c1">这是内容</div>
<br />
<span class="c2">这是内容</span>
</body>
```

### 标签选择器

- 标签选择器,为标签统一风格,在 head 定义标签的风格,会把这个样式应用到所有的标签

```
<head>
<style>
div{
background-color: #11f011;
height: 48px;
}
</style>
</head>
<body>
<div class="c1">这是内容</div>
<br />
<div class="c1">这是内容</div>
<br />
<span class="c2">这是内容</span>
</body>
```

### 层级选择器

- 层级选择器,`.c1 div a`,定义标签选择器的时候使用层级的结构,来表示为那个子标签设定样式。

```
<head>
<style>
.c1 div a{
background-color: #722311;
height: 48px;
}
</style>
</head>
<body>
<div>这是内容</div>
<br />
<span class="c1">
<div>
<a href="baidu.com">这是内容</a>
</div>
</span>
</body>
```

### 组合选择器

- 组合选择器,`.c1,.c2,.c3`,使用逗号分隔多个样式,使用任意一个都可以引用这个样式。

```
<head>
<style>
.c1,.c2,.c3{
background-color: #722311;
height: 48px;
}
/*input,div,p{
background-color: #722311;
height: 48px;
}*/
</style>
</head>
<body>
<div class="c3">这是内容</div>
<br />
<div class="c2">这是内容</div>
<br />
<span class="c3">这是内容</span>
</body>
```

### 属性选择器

- 属性选择器,为指定的属性设置样式,也可以根据自定义属性来设置样式

```
<head>
<style>
input[type="text"]{ <!--标签属性选择器-->
background-color: #722311;
}
input[xingming="yangjinheng"]{ <!--标签自定义属性选择器-->
background-color: #334311;
}
.c1[type="password"]{ <!--class选择器,和属性选择器同时-->
background-color: #eeaafdff;
}
</style>
</head>
<body>
<input type="text"></input>
<input xingming="yangjinheng"></input>
<input type="password"></input>
<input class="c1" type="password"></input>
</body>
```

## 边框定义

### 边框样式

- border 定义一个边框,它是1像素,solid red 是红色实线。

```
<div style="border:1px solid red">
这是内容
</div>
```

### 边框大小

需要注意的是,行内标签 `<span>` 是不能设置边框大小的

```
<body>
<div style="height: 48px;width: 200px;border:1px solid red"> <!--按像素-->
这是内容
</div>
<br />
<div style="height: 48px;width: 80%;border:1px solid red"> <!--按占比-->
这是内容
</div>
</body>
```

### 背景颜色

```
<body>
<div style="height: 48px;width: 80%;border:1px solid red;background-color: #2459a2;">
这是内容
</div>
</body>
```

### 定制边框

```
<body>
<p><div style="height: 20px;width: 80%;border:1px solid red">全边框</div></p>
<p><div style="height: 20px;width: 80%;border-top:1px solid red"></div>上边框</div></p>
<p><div style="height: 20px;width: 80%;border-bottom:1px solid red">下边框</div></p>
<p><div style="height: 20px;width: 80%;border-left:1px solid red">左边框</div></p>
<p><div style="height: 20px;width: 80%;border-right:1px solid red">右边框</div></p>
</body>
```

### 外边距

`margin`定义外边距

```
<body>
<div style="border: 1px solid red;height: 100px;">
<div style="background-color: rgb(230, 202, 78);height: 70px;margin: 20px">

</div>
</div>
</body>
<!--应用-->
<body>
<div style="width: 98%;margin: 0 auto;">
<div style="float: left">收藏本站</div>
<div style="float: right">
<a href="baidu.com">登陆</a>
<a href="baidu.com">注册</a>
</div>
</div>
</body>
```

### 内边距

`padding`定义内边距

```
<body>
<div style="border: 1px solid red;height: 100px;">
<div style="background-color: rgb(230, 202, 78);height: 70px;padding: 0px">
这是内容
</div>
</div>
</body>
```

## 字体定义

### 字体大小

```
<body>
<div style="font-size: 40px;">
字体大小为40px
</div>
</body>
```

### 水平居中

```
<body>
<div style="font-size: 40px;text-align: center">
字体大小为40px,并且水平居中
</div>
</body>
```

### 垂直居中

```
<body>
<div style="font-size: 40px;line-height: 500px;">
字体大小为40px,并且垂直居中
</div>
</body>
```

### 加粗字体

```
<body>
<div style="font-size: 40px;font-weight: bold">
字体大小为40px,并且加粗
</div>
</body>
```

## 浮动样式

### 浮动样式

- 它可以使块级别标签从一个方向开始堆叠,直到占满才新起一行

```
<body>
<div style="width: 20%;background-color: rgb(99, 125, 196);float: left;">左侧堆叠</div>
<div style="width: 20%;background-color: rgb(167, 67, 125);float: left;">左侧堆叠</div>
<div style="width: 20%;background-color: rgb(67, 255, 192);float: right;">右侧堆叠</div>
<div style="width: 20%;background-color: rgb(187, 247, 92);float: right;">右侧堆叠</div>
</body>
```

### 嵌套浮动

- 指定一个父 `div` 的宽度,然后在其内部定义若干个浮动的 `div` ,可以实现一个类似商城的展示柜

```
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<style>
.page-header{
background-color: rgb(189, 189, 189);
height: 38px;
line-height: 38px;
}
</style>
</head>
<body style="margin: 0 auto;"> <!--去除body带来的网页开头的空白部分-->
<div class="page-header">
<div style="float: left">收藏本站</div>
<div style="float: right">
<a href="baidu.com">登陆</a>
<a href="baidu.com">注册</a>
</div>
</div>
<div style="width: 300px;border: 1px solid red;">
<div style="width: 96px;height: 30px;border: 1px solid green;float: left;;">内容</div>
<div style="width: 96px;height: 30px;border: 1px solid green;float: left;;">内容</div>
<div style="width: 96px;height: 30px;border: 1px solid green;float: left;;">内容</div>
<div style="width: 96px;height: 30px;border: 1px solid green;float: left;;">内容</div>
<div style="width: 96px;height: 30px;border: 1px solid green;float: left;;">内容</div>
<div style="width: 96px;height: 30px;border: 1px solid green;float: left;;">内容</div>
</div>
</body>
</html>
```

## 级别转换

默认情况下:`<div>`为块级别标签占用一行,`<span>`为行内标签占用自身需要的大小,它们之间可以转换。

### 块级转行内

`display: inline` 可以转换块级别标签为行内标签

```
<body>
<div style="background-color: rgb(73, 202, 202);display: inline;">原来是块标签</div>
</body>
```

### 行内转块级

`display: block` 可以转换行内标签为块级标签

```
<body>
<span style="background-color: blueviolet;display: block;">原来是行内标签</span>
</body>
```

### 多重属性

`display: inline-block` 可以使标签具有行内标签的属性:默认只占用自己需要的大小,还具有块级标签的属性:可以设置宽度高度。

```
<body>
<span style="background-color: blueviolet;display: inline-block;width: 100px;height: 40px;">多重属性</span>
</body>
```

## 去除标签

通过 `javascript` 控制 `display` 属性为 `none`,可以让这个标签从页面消失

```
<body>
<div style="background-color: rgb(73, 202, 202);display: inline;">原来是块标签</div>
<span style="background-color: blueviolet;display: block;">原来是行内标签</span>
<span style="background-color: blueviolet;display: none;">消失的标签</span>
</body>
```

## 样式优先级

- 一个标签可以应用多个样式,把 `<style>` 看作一个整体,后定义的覆盖先定义的,这是优先级。

```
<head>
<style>
.c1{
background-color: red;
color: white;
}
.c2{
font-size: 28px;
color: black;
}
</style>
</head>
<body>
<div class="c1 c2" style="color: pink;">这是内容</div>
</body>
```

## 使用CSS文件

以上内容都是在HTML内直接定义样式,如果一个样式需要跨HTML文件那么代码的重用性又降低了。

- 编写 css 文件,文件名:comm.css

```
.c1{
background-color: red;
color: white;
}
.c2{
font-size: 28px;
color: black;
}
```

- 在html文件中引用 css 文件,1.html

```
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<link rel="stylesheet" href="comm.css" />
</head>
<body>
<div class="c2">这是内容</div>
</body>
</html>
```

- 在html文件中引用 css 文件,2.html

```
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<link rel="stylesheet" href="comm.css" />
</head>
<body>
<div class="c1">这是内容</div>
</body>
</html>
```

posted @ 2018-11-13 11:18  Python爱好者666  阅读(113)  评论(0编辑  收藏  举报