选择器,css文本属性

    CSS语法:
选择器 {属性1: 值1; 属性2: 值2} CSS放置的位置:
1. 直接写在标签里面,通过style属性来设置CSS样式
2. 在head标签里面通过style来写样式
3. 放到一个文件里面去 CSS选择器:
1. 标签选择器 (给哪个标签写样式就写那个标签名) CSS属性:
color
font-size
width
height
background-color
border(简写) 宽度 类型 颜色

 CSS 能够对网页中元素位置的排版进行像素级精确控制,支持几乎所有的字体字号样式,拥有对网页对象和模型样式编辑的能力。CSS不仅可以静态地修饰网页,还可以配合各种脚本语言动态地对网页各元素进行格式化。

一、CSS引入方式

1、行内样式

  行内式是在标记的style属性中设定CSS样式。只能对本标签内的内容进行渲染,这种方式没有体现出CSS的优势,不推荐使用。

2、内部样式

  嵌入式是将CSS样式集中写在网页的<head></head>标签对的<style></style>标签对中,针对单个文件适用。格式如下:

3、外部样式

外部样式就是将css写在一个单独的文件中,然后在页面进行引入即可。推荐使用此方式。

二、css选择器

1、基本选择器

  (1)标签选择器:通过标签名进行定位选择

(2)id 选择器:根据id进行定位选择

(3)class选择器

注意:

样式类名不要用数字开头(有的浏览器不认)。

标签中的class属性如果有多个,要用空格分隔。

(4)标签.class名

(标签名和class名紧挨着,没有空格, 用于给带有class名的指定标签添加样式)

(5)通用选择器

三、层级选择器

1. 后代选择器(子子孙孙去找, 从所有后代元素中找符合要求的)
2. 儿子选择器(只从直接子元素(儿子标签)里找)
3. 毗邻选择器(label+input,找到紧挨着某个标签的标签, 往下找)
4. 弟弟选择器(往后找同级的标签)
5. 组合选择器(减少重复代码,把几个查找标签的条件用","分隔
/*为所有的div和p标签设置边框属性*/
div, p {
border: 1px solid red;
}

(1)后代选择器

    (子子孙孙去找, 从所有后代元素中找符合要求的)

<!DOCTYPE html>
<html lang="zh—CN">
<head>
<meta charset="UTF-8">
<title>层级选择器</title>
<style>
/*后代选择器*/
div a{
color: red;
}
</style>
</head>
<body>
<div>
<a href="">我是div内部a标签</a>
<div>
<a href="">我是div的孙子a标签</a>
</div>
</div>
<a href="">我是div外部a标签</a>
</body>
</html>

后代选择器

(2)儿子选择器(选择器通过>连接)

    只有直接子元素才发生变化

<!DOCTYPE html>
<html lang="zh—CN">
<head>
<meta charset="UTF-8">
<title>层级选择器</title>
<style>
/*儿子选择器*/
div>a{
color: red;
}
</style>
</head>
<body>
<div>
<a href="">我是div内部a标签</a>
<p>
<a href="">我是div的孙子a标签</a>
</p>
</div>
<a href="">我是div外部a标签</a>
</body>
</html>

子代选择器

(3)毗邻选择器

毗邻选择器中间用加好相连,只有作用到向下紧挨着的xxx选择器

<!--将框变成红色-->
<!DOCTYPE html>
<html lang="zh—CN">
<head>
<meta charset="UTF-8">
<title>层级选择器</title>
<style>
/*!*毗邻选择器*! */
label+input{
border: 1px solid red;
}
</style>
</head>
<body>
<div>
<a href="">我是div内部a标签</a>
<div>
<a href="">我是div的孙子a标签</a>
</div>
</div>
<form action="">
<label for="i1">姓名</label>
<input type="text" id="i1">
<label for="i2">密码</label>
<input type="password" id="i2">
<label for="i3">邮箱</label>
<input type="email" id="i3"> <input type="submit" value="提交">
</form>
<a href="">我是div外部a标签</a>
</body>
</html>

(4)弟弟选择器

弟弟选择器,中间器用~分割,表示p标签下所有同级选择器ul

p标签不能嵌套块级标签 ,div ,ul

<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<meta http-equiv="x-ua-compatible" content="IE=edge">
<title>层级选择器示例</title>
<style>
/*弟弟选择器*/
p~ul{
color: green;
}
</style>
</head>
<body> <ul>
<li>111</li>
<li>222</li>
<li>333</li>
</ul>
<p>这是一个P标签</p>
<ul>
<li>111</li>
<li>222</li>
<li>333</li>
</ul> </body>
</html>

(5)组合显示器

通过基本选择器按照规则的组合,可以实现更精确的选择,称为组合选择器。

<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<meta http-equiv="x-ua-compatible" content="IE=edge">
<title>层级选择器示例</title>
<style>
/*组合选择器 每个选择器都应用该样式*/
p>a, p~a{
color: green;
}
</style>
</head>
<body>
<div>
<a href="">我是div内部的a标签</a>
<p>
<a href="">我是div的孙子a标签</a>
<!--P标签不能包ul还有div-->
</p>
</div>
<a href="">我不想被绿</a>
<p>这是一个p标签</p>
<a class="c1" href="">我是div外面的a标签</a>
</body>
</html>

注意,关于标签嵌套:一般,块级元素可以包含内联元素或某些块级元素,但内联元素不能包含块级元素,它只能包含其它内联元素。需要注意的是,p标签不能包含块级标签。

和基本选择器组合使用

<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<meta http-equiv="x-ua-compatible" content="IE=edge">
<title>层级选择器示例</title>
<style> /*和基本选择器组合使用*/
p~a.c1{
color: deeppink;
} .c1 {
color: blue;
} </style>
</head>
<body> <p>这是一个P标签</p>
<a class="c1" href="">我是div外面的a标签</a>
<div class="c1">有c1 class的div标签</div>
<a href="">我没有c1这个样式</a>
</body>
</html>

四、属性选择器

  class选择器可以有多个名字,用空格隔开。

/*用于选取带有指定属性的元素。*/
p[title] {
  color: red;
}
/*用于选取带有指定属性和值的元素。*/
p[title="213"] {
  color: green;
} /*上面常用↑*/ /*用于选取属性值包含指定值的每个元素*/
div[class~="c2"] {
  color: red;
}
/*用于选取带有以指定值开头的属性值的元素,该值必须是整个单词。*/
div[class|="c2"] {
  color: red;
}
/*匹配属性值以指定值开头的每个元素*/
div[class^="my"] {
  color: red;
}
/*匹配属性值以指定值结尾的每个元素*/
div[class$="s"] {
  color: red;
}
/*匹配属性值包含指定值的每个元素*/
div[class*="sb"] {
  color: red;
}

实例:

(1)用于选取带有指定属性的元素

<!DOCTYPE html>
<html lang="zh—CN">
<head>
<meta charset="UTF-8">
<title>属性选择器</title>
<style>
[apple]{
color: green;
} </style>
</head>
<body>
<div apple="green">绿色的苹果</div>
<div>我没有苹果属性</div>
</body>
</html>

(2) 用于选取带有指定属性和值的元素。

<!DOCTYPE html>
<html lang="zh—CN">
<head>
<meta charset="UTF-8">
<title>属性选择器</title>
<style>
[apple]{
color: green;
}
[type="button"]{
background-color: red;
}
</style>
</head>
<body>
<div apple="green">绿色的苹果</div>
<div>我没有苹果属性</div> <input type="submit" value="提交">
<input type="button" value="按钮"> </body>
</html>

Viee例子

(3)用于选取属性值包含指定值的每个元素(不常用)

<!DOCTYPE html>
<html lang="zh—CN">
<head>
<meta charset="UTF-8">
<title>属性选择器</title>
<style>
[apple~="green"]{
color:blueviolet;
} </style>
</head>
<body>
<div apple="green">绿色的苹果</div>
<div>我没有苹果属性</div>
<div apple="green red pink">被污染的苹果</div> </body>
</html>

(4)用于选取带有以指定值开头的属性值的元素,该值必须是整个单词

<!DOCTYPE html>
<html lang="zh—CN">
<head>
<meta charset="UTF-8">
<title>属性选择器</title>
<style>
[apple|="green"]{
color:blueviolet;
} </style>
</head>
<body>
<div apple="green">绿色的苹果</div>
<div apple="green-red-pink">被污染的苹果</div>
<div apple="green ggg gay">被污染的苹果第二个</div> </body>
</html>

(5)匹配属性值以指定值开头的每个元素(修改)

<!DOCTYPE html>
<html lang="zh—CN">
<head>
<meta charset="UTF-8">
<title>属性选择器</title>
<style>
[apple^="my"]{
background-color: blue;
} </style>
</head>
<body>
<div apple="green">绿色的苹果</div>
<div apple="green-red-pink">被污染的苹果</div> <input apple="my-submit1" type="submit" value="同意">
<input apple="my-submit2" type="button" value="不同意"> </body>
</html>

五、伪类选择器

  伪类专用于控制连接的显示效果,主要有如下四种类型:

a 为超链接标签,包含如下四种状态:没有点过的状态 点过状态 鼠标悬浮状态 选定状态

        a:link {color: #FF0000} /* 未访问的链接 */

        a:visited {color: #00FF00} /* 已访问的链接 */

        a:hover {color: #FF00FF} /* 鼠标移动到链接上 */

        a:active {color: #0000FF} /* 选定的链接 */ 格式: 标签:伪类名称{ css代码; }

其次其次还有before和after伪类,主要用于在标签前后插入内容,如下:

:before    p:before       在每个<p>元素之前插入内容
:after p:after 在每个<p>元素之后插入内容 例:p:before{content:"hello";color:red;display: block;} /*在每个<p>元素之前插入内容*/
p:before {
  content:"hello";
  color:red;
  display: block;
} /*在每个<p>元素之后插入内容*/
p:after {
  content:"bye";
  color:red;
  display: block;
}

******************************************************

六、选择器的优先级

1、继承

  继承是CSS的一个主要特征,它是依赖于祖先-后代的关系的。继承是一种机制,它允许样式不仅可以应用于某个特定的元素,还可以应用于它的后代。如下例:

<!DOCTYPE html>
<html lang="zh—CN">
<head>
<meta charset="UTF-8">
<title>选择器优先级</title> <style>
.c1{
color: red;
} </style>
</head>
<body>
<div class="c1">
lishi
<div>div2</div>
<a>ppp</a>
</div>
</body>
</html>

此时页面上所有标签都会继承body的字体颜色。然而CSS继承性的权重是非常低的,是比普通元素的权重还要低的0。

我们只要给对应的标签设置字体颜色就可覆盖掉它继承的样式。.

<!DOCTYPE html>
<html lang="zh—CN">
<head>
<meta charset="UTF-8">
<title>选择器优先级</title> <style>
.c1{
color: red;
}
a{
color: blue;
}
</style>
</head>
<body>
<div class="c1">
lishi
<div>div2</div>
<a>ppp</a>
</div>
</body>
</html>

此外,继承是CSS重要的一部分,我们甚至不用去考虑它为什么能够这样,但CSS继承也是有限制的。有一些属性不能被继承,如:border, margin, padding, background等。

2、样式优先级

  所谓CSS优先级,即是指CSS样式在浏览器中被解析的先后顺序。样式表中的特殊性描述了不同规则的相对权重,以权重值最大的为准,它的基本规则是:

实例:

当权重值相同时候,以最后加载的为准,如下例:

有!important声明的规则高于一切,如下例:

七、css属性操作

(一)文本属性

1、文本颜色color

  颜色属性被用来设置文字的颜色。颜色指定的三种方式:(1)十六进制值 - 如: FF0000;(2)一个RGB值 - 如: RGB(255,0,0);(3)颜色的名称 - 如:  red

2、水平对齐

  text-align 属性规定元素中的文本的水平对齐方式。有如下几种形式:

left      把文本排列到左边。默认值:由浏览器决定。
right 把文本排列到右边。
center 把文本排列到中间。
justify 实现两端对齐文本效果。

3、其他文本属性

/*
font-size: 10px; line-height: 200px; 文本行高 通俗的讲,文字高度加上文字上下的空白区域的高度 50%:基于字体大小的百分比 vertical-align:-4px 设置元素内容的垂直对齐方式 ,只对行内元素有效,对块级元素无效 text-decoration:none text-decoration 属性用来设置或删除文本的装饰。主要是用来删除链接的下划线 font-family: 'Lucida Bright' font-weight: lighter/bold/border/ font-style: oblique text-indent: 150px; 首行缩进150px letter-spacing: 10px; 字母间距 word-spacing: 20px; 单词间距 text-transform: capitalize/uppercase/lowercase ; 文本转换,用于所有字句变成大写或小写字母,或每个单词的首字母大写
*/

文本居中应用示例如下:

垂直对齐实例:

(二)背景属性

/*背景颜色*/
background-color: red;
/*背景图片*/
background-image: url('1.jpg');
/*
背景重复
repeat(默认):背景图片平铺排满整个网页
repeat-x:背景图片只在水平方向上平铺
repeat-y:背景图片只在垂直方向上平铺
no-repeat:背景图片不平铺
*/
background-repeat: no-repeat;
/*背景位置*/
background-position: right top(20px 20px);

支持简写:

background:#ffffff url('1.png') no-repeat right top;

使用背景图片的一个常见案例就是很多网站会把很多小图标放在一张图片上,然后根据位置去显示图片。减少频繁的图片请求。

<!DOCTYPE html>
<html lang="zh—CN">
<head>
<meta charset="UTF-8">
<title>css属性</title>
<style>
.c1 {
width: 527px;
height: 405px;
border: 1px solid red;
background: no-repeat center center
} </style> </head>
<body>
<div class="c1"> <img src="02.png" height="368" width="490"/></div>
</body>
</html>

(三)边框属性

'''
border-style: solid; border-color: red; border-width: 20px;
'''
#简写:border: 30px red solid;

单独设置各边情况:

border-top-style:dotted; 
border-right-style:solid;
border-bottom-style:dotted;
border-left-style:none;

边框的的形式、颜色、宽度也可以进行简写,具体实例如下:

<!DOCTYPE html>
<html lang="zh—CN">
<head>
<meta charset="UTF-8">
<title>css属性</title>
<style> img {
width: 600px;
height: 600px;
border: 1px red dashed;
border-radius: 20%;
background: no-repeat center center }
span{
padding:5px;
background-color: blueviolet;
border-radius: 20%;
}
</style> </head>
<body>
<div class="c1"> <img src="02.png" height="368" width="490"/></div>
<span>2</span>
</body>
</html>

(四)外边距(margine)和内边距(padding)

.margin-test {
margin-top:100px;
margin-bottom:100px;
margin-right:50px;
margin-left:50px;
}
推荐使用简写:
.margin-test { margin: 5px 10px 15px 20px; }
顺序:上右下左

常见居中:

.mycenter {
margin: 0 auto;
}
补充:

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

  注意,只有块级标签才有width和height属性。如下例:

<!DOCTYPE html>
<html lang="zh—CN">
<head>
<meta charset="UTF-8">
<title>css属性</title>
<style>
p{
width: 300px;
height: 100px;
color: blueviolet;
background-color: pink;
}
a{
color:green;
text-decoration: none;
width: 300px;
height: 100px;
background-color: deepskyblue;
}
</style> </head>
<body>
<a href="">jassin</a>
<p>lishi</p>
</body>
</html>

通过下述盒子模型,更方便对border、margine、padding概念的理解:

1、外边距margine

  (1)单边外边距情况:

margin-top:100px;
margin-bottom:100px;
margin-right:50px;
margin-left:50px;

块级标签使用如下

<!DOCTYPE html>
<html lang="zh—CN">
<head>
<meta charset="UTF-8">
<title>css属性</title>
<style>
.c1{
width: 200px;
height: 100px;
background-color: pink;
}
.c2{
width: 300px;
height: 100px;
background-color: deepskyblue;
margin-top: 40px;
}
</style> </head>
<body>
<div class="c1">hello</div>
<div class="c2">hello</div> </body>
</html>

内联标签使用例子:

<!DOCTYPE html>
<html lang="zh—CN">
<head>
<meta charset="UTF-8">
<title>css属性</title>
<style>
.c3{
padding: 20px;
background-color: pink;
}
.c4{
margin-left: 20px;
padding: 20px;
background-color: deepskyblue;
}
</style> </head>
<body>
<span class="c3">hello</span><span class="c4">world</span> </body>
</html>

上述即使不对内联标签创建内边距,也可以使用外边距。

(2)多边情况

margin:10px 20px 20px 10px;

        上边距为10px
右边距为20px
下边距为20px
左边距为10px margin:10px 20px 10px; 上边距为10px
左右边距为20px
下边距为10px margin:10px 20px; 上下边距为10px
左右边距为20px margin:25px; 所有的4个边距都是25px

  margine居中例子:

<!DOCTYPE html>
<html lang="zh—CN">
<head>
<meta charset="UTF-8">
<title>css属性</title>
<style>
.c1{
width: 200px;
height: 39px;
background-color: pink;
}
.c2{
width: 100px;
height: 39px;
background-color: deepskyblue;
margin: 0 auto;
}
</style> </head>
<body>
<div class="c1">
<div class="c2"></div>
</div>
</body>
</html>

2、内边距padding

  设置和margine一致,需注意如下两个问题:(1)兄弟div:上面div的margin-bottom和下面div的margin-top会塌陷,也就是会取上下两者margin里最大值作为显示值;(2)父子div:if 父级div中没有border,padding,inlinecontent,子级div的margin会一直向上找,直到找到某个标签包括border,padding,inline content中的其中一个,然后按此div 进行margin,解决办法是给父级css增加属性overflow: hidden;如下例:

<!DOCTYPE html>
<html lang="en" style="padding: 0px">
<head>
<meta charset="UTF-8">
<title>Title</title>
<style> body{
margin: 0px;
} .div1{
background-color: rebeccapurple;
width: 300px;
height: 300px;
overflow: hidden; }
.div2{
background-color: green;
width: 100px;
height: 100px;
margin-bottom: 40px;
margin-top: 20px;
}
.div3{
background-color:teal;
width: 100px;
height: 100px;
margin-top: 20px;
}
</style>
</head>
<body>
<div style="background-color: bisque;width: 300px;height: 300px"></div> <div class="div1"> <div class="div2"></div>
<div class="div3"></div>
</div> </body> </html>

前端之css样式01的更多相关文章

  1. 前端04 /css样式

    前端04 /css样式 目录 前端04 /css样式 昨日内容回顾 css引入 选择器 基础选择器 组合选择器 属性选择器 伪类选择器 伪元素选择器 优先级(权重) 通用选择器 css样式 1高度宽度 ...

  2. 前端之css样式(选择器)。。。

    一.css概述 CSS是Cascading Style Sheets的简称,中文称为层叠样式表,对html标签的渲染和布局 CSS 规则由两个主要的部分构成:选择器,以及一条或多条声明. 例如 二.c ...

  3. 前端之CSS样式

    一.CSS 1.什么是CSS 层叠样式表(英文全称:Cascading Style Sheets)是一种用来表现HTML(标准通用标记语言的一个应用)或XML(标准通用标记语言的一个子集)等文件样式的 ...

  4. 前端之css样式(选择器)

    一.css概述 CSS是Cascading Style Sheets的简称,中文称为层叠样式表,对html标签的渲染和布局 CSS 规则由两个主要的部分构成:选择器,以及一条或多条声明. 例如 二.c ...

  5. 前端学习 -- Css -- 样式的继承

    像儿子可以继承父亲的遗产一样,在CSS中,祖先元素上的样式,也会被他的后代元素所继承, 利用继承,可以将一些基本的样式设置给祖先元素,这样所有的后代元素将会自动继承这些样式. 但是并不是所有的样式都会 ...

  6. 前端开发---css样式的使用方式

    css使用方式: 1.内联样式表: <body style="background-color:green" margin:0 ; padding:0;> 2.嵌入式样 ...

  7. 前端笔记--css样式笔记

    一.浮动 定位布局 1.浮动布局 left 元素向左浮动 right 元素向右浮动 例如:设置2个按钮,要使得按钮在同一行位置摆放,可以使用浮动,令按钮浮动到右边.注意,先设置float的按钮,例如: ...

  8. 前端之css样式02

    一.float属性 block元素通常被现实为独立的一块,独占一行,多个block元素会各自新起一行,默认block元素宽度自动填满其父元素宽度.block元素可以设置width.height.mar ...

  9. 前端知识之css样式

    前端之CSS样式 css介绍 css是为html标签设置样式的 css由选择器和声明组成 声明包括属性和属性值 声明之间用分号:隔开 css注释 /注释类容/ css的几种引入方式 行内样式 不推荐使 ...

随机推荐

  1. PHP实现文件下载断点续传

    <?php /* * PHP下载断点续传 * from:php100 */ function dl_file_resume($file){ //检测文件是否存在 if (!is_file($fi ...

  2. UVALive 6906 A - Cluster Analysis

    思路:排个序,依次选就好了. #include <bits/stdc++.h> #define PB push_back #define MP make_pair using namesp ...

  3. netty5----心跳

    netty3心跳: package com.heart; import java.net.InetSocketAddress; import java.util.concurrent.Executor ...

  4. 认识shiro

    shiro是安全(权限)框架,不仅可以在javase中也可以在javaee中 shiro可以完成认证.授权.加密.会话管理,与web进行集成.缓存等. Authentication:身份认证/登录,验 ...

  5. c语言单元测试框架--CuTest

    1.简介 CuTest是一款微小的C语言单元测试框,是我迄今为止见到的最简洁的测试框架之一,只有2个文件,CuTest.c和CuTest.h,全部代码加起来不到一千行.麻雀虽小,五脏俱全,测试的构建. ...

  6. windows10下Python如何设置环境变量

    1.右击“我的电脑”,选择“属性”, 2.选择“高级系统设置”, 3.选择“环境变量”, 4.在“系统变量”中选中“Path”,再点“新建”.(Python.Scripts两个目录都要加,只加Pyth ...

  7. java中最常用jar包的用途

    jar包用途 axis.jarSOAP引擎包commons-discovery-0.2.jar用来发现.查找和实现可插入式接口,提供一些一般类实例化.单件的生命周期管理的常用方法.jaxrpc.jar ...

  8. PHP练习题三

    1.用PHP打印出前一天的时间格式是2006-5-10 22:21:21. echo date(‘Y-m-d H:i:s’, strtotime(‘-1 days’)); 2.不使用第三个变量交换两个 ...

  9. Dangling Javadoc comment

    Javadoc主要用于对类和方法的注释.Javadoc没有@file和@date的注解.Javadoc has no @file or @date tags. You should be taggin ...

  10. Elasticsearch6.4.3文档的映射

    已经把ElasticSearch的核心概念和关系数据库做了一个对比,索引(index)相当于数据库,类型(type)相当于数据表,映射(Mapping)相当于数据表的表结构.ElasticSearch ...