CSS 样式笔记

60 阅读5分钟

CSS

Cascading style sheets,层叠样式表

1.引入方式

  • 行内样式 卸载标签的 style 属性中。
<h1 style="color: red">一级标题<h1>
  • 内部样式表 写在<head> </head>中,用<style> </style>包裹
<head>
    <style>
       h1 {
           color: blue;
       }
    </style>
</head>
  • 外部样式表 写在单独的 .css 文件中,通过一下代码引入
 <link rel="stylesheet" href=".css的路径" >

2.选择器

1.通配符选择器*{ }

选中所有标签,一般用来去除标签默认的 margin 和 padding 。

* {
    margin: 0;
    padding: 0;
}

2.标签选择器标签名{ }

h1 {
    
}

3.id 选择器#id属性值{ }

标签的 id 属性值,在一个页面中,id是唯一的。

一个标签只有一个 id 属性值,一个 id 选择器只能选中一个标签。

<h1 id="id1">一级标题<h1>
#id1 {
    color: red;
}

4.类选择器.类名{ }

标签的 class 属性只称为类名,类名可重复。

一个标签可以有多个类名,用空格隔开,一个类选择器可以选中多个标签。

<h1 class="color-red class2">一级标题<h1>
.color-red {
    color: red;
}
.class2 {
    
}

5.属性选择器标签[属性1][属性2...]

属性选择器样式无需使用class或id的形式:

/* 选中所有包含 title 属性的标签 */
*[title] { } 
[title] { } 

/* 选中所有 title 值为 hello 的标签 */
[title=hello] {  }
/* 选中 title 属性值中包含独立的单词为 hello 的标签 */
[title~=hello] {  }
/* 选中 title 字符串中包含 hello 这个词 的标签*/
[title*=hello] {  }
/* 选中 title 属性是 hello ,或者以 hello- 开头的标签*/
[title|=hello] {  }
/* 选中 title 值以 hello 开头的标签 */
[title^=hello] {  }
/* 选中 title 值以 hello 结尾的标签 */
[title$=hello] {  }

/* 选中所有包含 href 属性的 a 标签 */
a[href] {  }

6.派生选择器

1.后代选择器选择器1 选择器2{ }

在选择器1的后代中,所有后代,儿子,孙子,重孙子.......

选择器间用空格隔开

 选择器1 选择器2 ... 选择器n{ }
 .con h1 { }
<div class="con">
    <h1>选中</h1>
    <div>
        <h1>选中</h1>
    </div>
</div>
2.子代选择器选择器1>选择器2{ }

只在选择器1的子代中,找到选择器2,只包括儿子,使用>隔开。

 .con>h1 { }
<div class="con">
    <h1>选中</h1>
    <div>
        <h1>未选中</h1>
    </div>
</div>
3.相邻兄弟选择器选择器1+选择器2{ }

选中紧接在一个元素后的元素,且二者具有相同的父亲元素。

4.兄弟选择器选择器1~选择器2{ }

选中一个指定元素的后面的所有兄弟结点。

7.并集选择器选择器1, 选择器2{ }

同时选中多个选择器,样式对每个选择器都生效。

h1, h2, h3 {
    margin: 0;
}

8.交集选择器选择器1选择器2{}

紧挨着

选中同时满足多个选择器的标签

如标签选择器和类选择器p.class 如标签选择器和id选择器p#id

<!-- p.demo 或 p# id0-->
<p id="id0" class="demo"></p>

9.hover伪类选择器选择器:hover{ }

选中鼠标悬停在元素上的状态,设置样式

3.样式

1.字体和文本样式

/*文字大小,默认16*/
font-size: 16px;

/*字体粗细*/
font-weight: normal; 正常,400
             bold; 加粗,700
             400; 推荐 100-900 整百数

/*文字倾斜*/
font-style: normal;正常
            italic;倾斜

/*文本转换*/
text-transform:  uppercase;所有内容转换为大写
		 lowercase;所有内容转换为小写
		 capitalize;每个单词的首字母大写:

/*文字字体*/
font-family: 微软雅黑;windows默认
             黑体;
             宋体;
             楷体;
             sans-serif;无衬线字体
             serif;衬线字体
             monospace;等宽字体
多种字体用,隔开,会从头选一个可以使用的字体。

/*简写, 复合属性,前两项可以省略,为默认*/
/* font: style weight size family; */
font: normal 400 16px 宋体;




/*字符间距*/
 letter-spacing: 3px;
/*单词间距*/
word-spacing: 10px;
/*内部空白的处理方式*/
white-space: nowrap;禁用元素内的文本换行
/*文本缩进*/
text-indent: 32px;
             1em; 1em 为一个字的大小,当前 font-size 的大小。

/*水平对齐方式*/
text-align: left;居左,默认;
            right;居右
            center;居中

/*文本修饰,下划线,删除线,上划线*/
text-decoration: underline;下划线
		 line-through;删除线
		 overline;上划线
		 none;无线

/*行高,两行文字间距*/
line-height: 30px;	大小为:上间距+文本高度+下间距,
             倍数;  当前font-size的倍数,设置1可以取消上下边距。
            /* 垂直居中可以使line-height为父元素的高度。 */

/*简写*/
font: style weight size/line-height family;



/*文本阴影*/
/*text-shadow: 水平阴影 垂直阴影 模糊 颜色*/
text-shadow: 2px 2px 5px red;

2.背景

/*背景颜色*/
background-color: rgba(0,0,0,0);

/*背景图片,url中的''可以省略,默认xy都平铺*/
background-image: url('图片的路径');

/*背景平铺*/
background-repeat: repeat;默认,xy都平铺
				 no-repeat;不平铺
				 repeat-x;水平上平铺
				 repeat-y;垂直方向上平铺

/*背景位置*/
background-position: x y;
					水平位置 垂直位置
					left/center/right top/center/bottom;
					10px 	10px;/*0 0;为左上角*/

/*简写*/
background: color image repeat position;

/*背景附着*/
background-attachment:  fixed;固定背景
                        scroll;背景随页面一起滚动

/*背景大小*/
background-size

/*背景绘制区域*/
background-clip: border-box;默认,背景被裁剪到边框盒
		 content-box;背景被裁剪到内容框
		 padding-box;背景被裁剪到内边距框
                 
/*背景定位*/
background-origin:  padding-box;背景图像相对于内边距框来定位
                    border-box;背景图像相对于边框盒来定位
                    content-box;背景图像相对于内容框来定位。



属性指定背景图像是应该滚动还是固定的(不会随页面的其余部分一起滚动):



/*透明度*/
opacity: 0.5;

4.显示模式

display: inline;行级元素
		block;块级元素
		inline-block;可以设置宽高的行级元素
		none;隐藏元素
			
visibility:hidden; 也可以隐藏元素。
但是,该元素仍将占用与之前相同的空间。元素将被隐藏,但仍会影响布局:




嵌套
1.块级元素一般作为大容器,可以嵌套,文本,块级元素,行内元素,行内块元素等等
但是,p标签中不要嵌套divp,h等块级元素。

2.a标签内部可以嵌套任意元素
但是,a标签不能嵌套a标签。

\