CSS--层叠样式表

简介

CSS---层叠样式表(Cascading Style Sheets)的简称,是一种标记语言。

也称:CSS样式表/级联样式表

作用:设置HTML页面中的文本内容(字体、大小、对齐方式等)、图片的外形(宽高、边框样式、边距等)以及版面的布局和外观显示样式。

语法规范

CSS结构构成:选择器 + 一条或多条声明

<style></style>标签放在<head></head>标签里面

代码风格

  1. 属性值、属性值关键字全部使用小写,特殊情况除外;
  2. 属性值前面、冒号后面,保留一个空格;
  3. 选择器和{}中间保留一个空格;
 <style>
        h3 {
            color: aqua;
            font-size: 12px;
        }
    </style>

选择器

作用:根据不同的需求把不同的标签选出来(选择标签用的)

基础选择器

构成:由单个选择器组成的

包括:标签选择器、类选择器、id选择器和通配符选择器

标签选择器(元素选择器)

HTML标签名称作为选择器,按标签名称分类,为页面中某一类标签指定统一的CSS样式。

基础结构:

<style>
        h3 {
            color: aqua;
            font-size: 12px;
        }
</style>

优点:标签选择器会将页面中某一类标签的样式都改变

缺点:不能差异化的选择某一类标签中的不同标签(类选择器可以解决这个问题)

类选择器(.)

基础结构:

<head>
    <style>
        .green {
            color: green;
        }
    </style>
</head>

<body>
    <h3 class="green">我爱中国!</h3> #h3标签调用green样式,用到class类
</body>

注:1.一个或多个标签都可调用类选择器的样式

       2.类选择器名称不能使用标签名称(例如p、span等) 

       3.不要使用纯数字、中文等命名,尽量使用英文字母来命名类选择器

id选择器(#)

基础结构:

<head>
    <style>
       #pink {
            color: blueviolet;
        }
    </style>
</head>

<body>
    <h3 id="pink">我爱中国!</h3> #只能调用一次!!!
</body>

注:1.只能调用一次

       2.一般用于页面唯一性的元素上,经常和JavaScript搭配使用

通配符选择器(*)

作用:定义页面中所有元素(标签)

基础结构:

<style>
        * {
            color: firebrick;
        }
</style>

注:1.不需要调用,自动给页面中所有元素使用样式

       2.在特殊场景下才使用

复合选择器

复合选择器建立在基础选择器之上,对基础选择器进行组合,由两个或多个基础选择器构成。

常用复合选择器:后代选择器、子选择器、并集选择器、伪类选择器等

后代选择器(又称包含选择器,重要)

作用:可以对父元素里面的子元素进行样式设置

格式:元素1 元素2 {样式声明}

注:元素1(父)和元素2(子)之间有一个空格,最终选择的是元素2(子)

<head>
    <style>
        ol li {color: pink;}
    </style>
</head>
<body>
    <ol>
        <li>111</li>
        <li>222</li>
        <li>333</li>
    </ol>
</body>

子选择器(重要)

作用:可以对离父元素最近一级子元素进行设置

格式:元素1>元素2 {样式声明}

注:元素1(父)和元素2(子)之间有一个>,最终选择的是元素2(子)

    <style>
        ol li {color: pink;}
        .kop>li {color: aqua;}
    </style>
</head>
<body>
    <ol>
        <li>你</li>
        <li>好</li>
        <li>同</li>
        <li>学</li>
    </ol>
    <ol class="kop">
        <li>欢</li>
        <li>迎</li>
        <li>回</li>
        <li>家</li>
    </ol>
</body>

注:代码中有两个<ol></ol>标签,想只对其中一个ol标签进行设置,可以利用类选择器(如上图中kop类)。这样在样式设置中可以不写ol li,而写.kop li

并集选择器

作用:可以选择多组标签,同时为它们定义相同的样式。通常用于集体声明。

格式:元素1,元素2 {样式声明}

注:1.并集选择器一般竖着写;

       2.最后一个选择器不需要加逗号;

       3.任何形式的选择器都可以作为并集选择器的一部分;(例如后代选择器等)

伪类选择器

作用:用于向某些选择器添加特殊的效果,比如给链接添加特殊效果。。。

格式:用冒号(:)表示,如:diff

种类:链接伪类、结构伪类。。。

链接伪类选择器
a:link  选择所有未被访问的链接
a:visited选择所有已被访问的链接
a:hover设置鼠标指针移动到链接上的样式
a:active设置鼠标按下链接但未弹起时的样式

注:1.按照LVHA顺序声明:link、visited、hover、active

       2.因为a链接在浏览器中具有默认样式,所以我们实际工作中都需要给链接单独指定样式。(若对<body>标签color:pink,则<body>标签内部的<a>标签不会跟着被设置为pink)

<head>
    <style>
        a:link {
            color: blue
        }
        a:visited {
            color: blueviolet
        }
        a:hover {
            color: brown
        }
        a:active {
            color: black
        }
    </style>
</head>
<body>
    <a href="#">我的淘宝主页</a>
</body>
:focus 伪类选择器

作用:选取获得焦点的表单元素

使用范围:焦点=光标。这个选择器主要针对于表单元素来说

<head>
    <style>
        input:focus {
            background-color: blueviolet;
        }
    </style>
</head>

<body>
    <input type="text">
</body>

 上面代码的效果:当光标点击表单时,表单会变成blueviolet(紫色)

字体属性

作用:定义字体系列、大小、粗细和文字样式(如斜体) 

基本属性

属性表示描述
font-size字号单位:px(一定要带上单位)
font-family字体
font-style样式倾斜:italic            标准:normal(常用)
font-weight粗细加粗:700/bold     不加粗:400/normal  (不带单位)
font属性连写属性值有顺序;字号和字体不可省略掉

注:属性font-family的属性值带引号(例如font-family: 'Arial')

复合属性

作用:将字体基本属性综合起来写,更节约代码

基本结构:

<style>
    body{
      font: font-style font-weight font-size/line-height font-family;
    }
</style>

注:1.使用font属性时,必须按照以上语法格式中的顺序书写(不能更换顺序),并且各个属性之间用空格隔开

       2.可以将不需要设置的属性省略(取默认值),但必须保留font-size和font-family属性,否则font属性将不起作用

文本属性

作用:定义文本的外观,例如文本的颜色、对齐方式、装饰文本、文本缩进、行间距等

文本颜色

color属性

表示属性值
预定义的颜色值red、green、blue等
十六进制(常用)#FF0000、#FF6600等
RGB代码rgb(255,0,0)或rgb(100%,0%,0%)

对齐方式

text-align属性

  • 左对齐(left)--默认
  • 居中对齐(center)
  • 右对齐(right)

装饰文本

text-decoration属性

属性值描述
none(常用)默认,没有装饰线
underline(常用)下划线。链接标签<a href></a>自带下划线
overline(几乎不用)上划线
line-through(不常用)删除线。

文本缩进

text-indent属性:用来指定文本的第一行缩进,通常是将段落的首行缩进

em是一个相对单位,是当前元素(font-size)1个文字大小,一个文字默认大小为16px。那么2em就是32px,表示缩进当前元素2个文字大小的距离。

如果当前元素没有设置大小,则按照父元素的1个文字大小来设置。

行间距

line-height属性:用于设置行间的距离(行高),可以控制文字行与行之间的距离。

 查看行间距的小工具:FSCapture、snipaste、PXcook

引入方式

内部样式表(嵌入式)

写在html页面内部,将所有的CSS代码抽取出来,单独放到一个<style>标签中

<head>
    <style>
        div {
            color: red;
            font-size: 12px;
        }
    </style>
</head>

注:1.<style>标签可以放在html文档的任何地方,但一般会放在文档的<head>标签中

        2.可以控制当前整个页面中的元素样式设置

行内样式表(行内式)

在元素标签内部的style属性中设定CSS样式。适合于修改简单样式

<div style="color: red; font-size: 12px;">祖国万岁!</div>

外部样式表(链接式)

样式单独写到CSS文件中,再将CSS文件引入到html页面中使用

实际开发中都是外部样式表,适合于样式比较多的情况

1.新建一个.css的文件

dl {
    font-size: 55px;
    color: blue;
}

注:不能写将<style></style>标签写入.css文件代码中!

2.使用<link>标签将新建的.css文件引入到html页面中

<head>
    <link rel="stylesheet" href=".css文件的路径">
</head>

注:<link>标签要放到<head>标签内

emmet语法

1.快速生成标签

例:键入div并按Enter或Tab,生成<div></div>标签

       键入div*6并按Enter或Tab,生成六个<div></div>标签

2.生成父子级关系的标签----用 >

例:键入ul>li,生成一个内部含有<li></li>标签的<ul></ul>标签

3.生成兄弟关系的标签-----用 +

例:键入div+p,生成一个<div></div><p></p>

4.生成带有类名或者id名字的标签

标签名.类名      例:p.name,生成<p class='name'></p>

标签名#id名      例:div#mba,生成<div id='mba'></div>

5.生成带有顺序的div类名-----用自增符号 $

键入.kop$*3,

生成<div class="kop1"></div>

       <div class="kop2"></div>

       <div class="kop3"></div>

6.生成的标签中默认显示文字------用 { }

键入div{我爱我的祖国},生成<div>我爱我的祖国</div>

键入div{我爱我的祖国}*2,生成两条<div>我爱我的祖国</div>

元素显示模式

定义:元素(标签)以什么方式进行显示。例如<div>自己独占一行。

HTML元素一般分为块元素行内元素两种类型。

块元素

常见块元素:<h1>~<h6>、<p>、<div>、<ul>、<ol>、<li>等。其中<div>是最典型的块元素。

特点:1.独占一行

           2.高度、宽度、外边距以及内边距都可设置。

           3.宽度默认是容器(父级宽度)的100%

           4.一个容器及盒子,里面可以放行内或者块级元素。

注:1.文字类的元素内不能使用块级元素

       2.<p>标签内不能放块级元素,特别是不能放<div>

行内元素

常见的行内元素:<a>、<strong>、<b>、<u>、<span>等。其中<span>是最典型的行内元素。有的地方也将行内元素称为内联元素。

特点:1.相邻行内元素在一行上,一行可以显示多个。

           2.高和宽直接设置是无效的。

           3.默认宽度是它本身内容的宽度。

           4.行内元素只能容纳文本或其他行内元素。

注:1.链接里面不能再放链接(<a></a>标签内不能在放别的链接)

       2.特殊情况:链接<a>里面可以放块级元素,但是给<a>转换一下块级模式最安全

行内块元素

行内元素中有几个特殊标签:<img/>、<input/>、<td>,它们同时具有块元素和行内元素的特点。它们也被称为行内块元素。

特点:1.和相邻行内元素(行内块)在一行上,但是他们之间会有空白缝隙。一行可以显示多个。

           2.默认宽度就是它本身内容的宽度(行内元素特点)

           3.高度、行高、外边距以及内边距都可以设置(块级元素特点)

总结:

元素模式元素排列设置样式默认宽度包含
块级元素一行只能放一个块级元素可以设置宽、高

容器的100

%

容器级可以包含任何标签
行内元素一行可以刚多个行内元素不可以设置宽、高它本身内容的宽度容纳文本或者其他行内元素
行内块元素一行放多个行内块元素可以设置宽、高它本身内容的宽度

显示模式的转换(常用)

一个模式的元素需要另一个模式的特性。例 想要增加链接a的触发范围。

display:block; (转换为块级元素)

display:inline;(转换为行内元素)

display:inline-block;(转换为行内块元素)

样式:

<head>
    <style>
         a {
            background-color: aqua;
            height: 100px;
            width: 100px;
            display: block;
        }
    </style>
</head>
<body>
    <a href="#">链接</a>
</body>

单行文字垂直居中

CSS没有提供文字垂直居中的代码

解决方案:让文字的行高=盒子的高度

注:文字的行高>盒子的高度,文字会偏低

       文字的行高<盒子的高度,文字会偏高

CSS的背景

背景颜色

格式:background-color:transparent  |   颜色;

元素背景颜色默认值:transparent(透明色)

背景图片

background-image属性描述了元素的背景图像。实际开发常见于logo或者一些装饰性的小图片或者超大的背景图片,优点是非常便于控制位置。

格式:background-image:none  |  url;   

           none:无背景图(默认的);url:背景图的绝对或相对地址

<style>
    div {
            background-color: bisque;
            height: 500px;
            width: 500px;
            background-image: url(../images/taylor.png);
        }
</style>

背景平铺

background-repeat:  repeat  |  no-repeat  |  repeat-x  | repeat-y

repeat:背景图像在纵向和横向上平铺(默认)

no-repeat:背景不平铺

repeat-x:背景在横向上平铺

repeat-y:背景在纵向上平铺

背景图片位置

background-position: x   y;

注:x坐标和y坐标。可以使用方位名词或者精确单位

参数值说明
length百分数 |  由浮点数字和单位标识符组成的长度值
positiontop | center | bottom | left | right  方位名词
  • 参数值为方位名词

        1.如果指定的两个值都是方位名词,则两个值前后顺序无关,则效果一致。例如center top和 top center。

        2.如果只指定了一个方位名词,另一个值省略,则第二个值默认居中对齐。

  • 参数值为精确单位

        1.若指定的两个值都是精确单位,则第一个值是X坐标,第二个值是Y坐标。

        2.若只指定一个数值,则第二个值默认垂直居中。

  • 参数值为混合单位(混合使用方位名词和精确单位)

        1.若指定的两个值是精确单位和方位名词,则第一个值是X坐标,第二个值是Y坐标。

背景图像固定(背景附着)

background-attachment : scroll | fixed

参数作用
scroll背景图像是随对象内容滚动
fixed背景图像固定

背景复合写法

为了简化背景属性的代码,可将这些属性合并简写在同一属性background中,从而节约代码量。

一般习惯顺序(无固定书写顺序)↓↓↓↓

background:背景颜色 背景图片地址 背景平铺 背景图像滚动 背景图片位置

背景色半透明

background:rgba(0,0,0,0.3)   注:(1)3可以写成.3 ;(2)括号后面必须4个值

r:红

g:绿

b:蓝

a(alpha):透明度,取值范围在0~1之间,0表示完全透明。

注:透明是针对盒子的背景色,而盒子里面的文字等并不受影响。

CSS三大特性

层叠性

效果:相同选择器给设置相同的样式,此时一个样式会覆盖(层叠)另一个冲突的样式。

作用:用于解决样式冲突的问题。

原则:“就近原则”,哪个样式离结构近就执行哪个样式。

继承性

子标签会继承父标签的某些样式。(text-、font-、line-这些元素开头的可以继承,以及color属性)

作用:降低CSS样式的复杂性。

行高的继承性

body {
    font:12px/1.5 Microsoft YaHei;
}

注:1.行高的单位可有可无

        2.若子元素没有设置行高,则会继承父元素的行高(1.5)

        3.按照上图代码,此时子元素的行高为当前子元素的文字大小*1.5

优先级

1.当同一元素指定多个选择器,就会有优先级的产生。

  • 当选择器相同时,执行层叠性;
  • 当选择器不同时,根据选择器权重执行;

选择器权重表:

选择器权重
继承或*0,0,0,0
元素选择器0,0,0,1
类选择器、伪类选择器0,0,1,0
id选择器0,1,0,0
行内样式 style=" "1,0,0,0
!important 重要的∞无穷大

注:1.权重由4组数字组成,不会有进位;

       2.继承的权重是0,如果该元素没有直接选中,不管父元素权重多高,子元素得到的权重为0;

2.权重叠加

如果是复合选择器,则会有权重叠加,需要计算权重。

盒子模型 136

边框(border)

border-width  边框粗细,单位:px

border-style   边框样式

border-color   边框颜色

border-collapse:collapse;  //将相邻边框合并在一起

border-top/right/buttom/left

  • 边框复合写法(没有顺序) 例 border:8px soild pink;

内边距 (padding)

边框与内容之间的距离    padding-top/bottom/left/right

 注:1.padding会影响盒子原本的大小。若正方形盒子原本200px,padding设置为10px,则盒子会变成220px;

        2.若盒子本身没有指定width/height属性,则padding不会撑开盒子大小;

外边距(margin)

盒子与盒子之间的距离   margin-top/bottom/left/right

外边距应用

外边距的合并

 清除内外边距 154

网页元素很多自带默认的内外边距,而不同浏览器默认的也不一致。因此,在布局前,首先要清除下网页元素的内外边距。

* {
    margin:0;
    padding:0;
 }

注:行内元素为了照顾兼容性,尽量只设置左右内外边距,不要设置上下内外边距。但是转换为块级和行内块元素就可以。

圆角边框(重点)

 盒子阴影

 注:不可以写outset,这个值是默认的。

文字阴影

CSS浮动(float)

  • 标准流(普通流/文档流)

 网络布局第一准则:多个块级元素纵向排列找标准流,多个块级元素横向排列找浮动

什么是浮动?

 浮动特效(重难点)

 注:浮动的盒子只会影响浮动盒子后面的标准流,不会影响前面的标准流。(因为浮动之后会脱标)

清除浮动

为什么要清除浮动?

 清除浮动的本质

  • 实质:清除浮动元素造成得影响
  • 如果父盒子本身有高度,则不需要清除浮动
  • 清除浮动之后,父级就会根据浮动的子盒子自动检测高度。父级有了高度,就不会影响下面的标准流了。

 清除浮动的方法

额外标签法(隔墙法)

这种方法是W3C推荐的做法。

父级添加overflow属性

overflow : hidden/auto/scroll

父级添加after伪元素
//这两段代码是固定写法
.clearfix:after {
    content: '';
    display: block;
    height: 0px;
    clear: both;
    visibility: hidden;
}
//IE6、7专有
.clearfix {
    *zoom: 1;
}

优点:没有增加额外标签,结构更简单

缺点:照顾低版本浏览器

代表网站:百度、淘宝、网易等

父级添加双伪元素
.clearfix:before,.clearfix:after {
    content: '';
    display: table;
}

.clearfix:after {
    clear: both;
}

.clearfix {
    *zoom: 1;
}

  注:代表网站、腾讯、小米

CSS属性书写顺序(重点)

页面布局整体思路

定位

定位可以让盒子自由的在某个盒子内移动位置或固定屏幕中某个位置,并且可以压住其他盒子。

定位的组成

定位=定位模式+边偏移

定位模式

定位模式决定元素的定位方式,它通过CSS的position属性来设置,其值可以分为四个:

静态定位
相对定位(重要)

 绝对定位(重要)

绝对定位的盒子居中

 固定定位(重要)

  • 固定定位的小技巧:固定在版心右侧位置
  • 第一步,让固定定位的盒子 left:50%,走到浏览器可视区(版心)的一半位置。
  • 第二步,让固定定位的盒子 margin-left:版心宽度的一半距离。多走 版心宽度的一半位置。
粘性定位 (了解)

子绝父相(口决)

边偏移

 定位的叠放次序 z-index

 定位拓展

  • 1.行内元素添加绝对定位或者固定定位,可以直接设置高度和宽度;
  • 2.块级元素添加绝对或者固定定位,如果不给宽度或者高度,默认大小是内容的大小;
  • 3.脱标的盒子不会触发外边距塌陷:浮动元素、绝对定位(固定定位)元素的都不会触发外边距合并的问题;
  • 4.绝对定位(固定定位)会完全压住盒子;浮动元素只会压住它下面标准流的盒子,但不会压住下面标准流盒子里面的文字(图片);

元素的显示与隐藏

display (重要)

visibility 

overflow 

CSS高级技巧

精灵图(sprites)的使用

字体图标(iconfont)

使用场景

优点

 下载网站

字体图标的引入

字体文件格式

 字体图标引入

  • 在CSS样式中全局声明字体:将字体文件通过CSS引入到我们页面中。
  • 找到icommon文件中的style.css文件,将style.css中的前面一部分代码复制到html代码中的style标签内。

 字体图标追加

 CSS 三角

<style>
    div {
        width: 0;
        height: 0;
        line-height: 0;
        font-size: 0;
        border: 50px solid transparent;
        border-top-color: aqua;
        border-right-color: blue;
        border-bottom-color: brown;
        border-left-color: blueviolet;
    }
</style>

效果:

三角应用

CSS用户界面样式

鼠标样式 cursor

 轮廓线--outline

input {
    outline : 0; //或者outline : none;
}

 可以去掉表单框默认的蓝色边框;

防止拖拽文本域--resize

textarea {
    resize : none;
}

vertical-align属性

应用

问题:图片底侧有空白缝隙;

原因:行内块元素会和文字的基线对齐,导致出现空白缝隙;

解决:1.给图片添加vertical-align:middle | top | bottom等;

           2.给图片转换为块级元素 display:block;

溢出的文字用省略号显示

单行文字溢出显示省略号

三步走:

多行文字溢出显示省略号

常见布局技巧

margin负值的运用

1.让每个盒子margin往左侧移动 -1px ,正好压住相邻盒子边框;

2.鼠标经过某个盒子的时候,提高当前盒子的层级即可(如果没有定位,则加相对定位(可保留原位置);如果有定位,则加z-index)

文字围绕浮动元素

270

行内块的巧妙运用

CSS初始化

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
Tkinter是Python的一个标准GUI库,用于创建图形用户界面。它提供了一组丰富的控件和布局管理器,可以用于构建各种类型的应用程序。 CSS层叠样式表)是一种用于描述网页样式的语言,它可以控制网页的布局、字体、颜色、背景等方面的样式。在Tkinter中,可以使用CSS样式表来美化应用程序的界面。 要在Tkinter中使用CSS样式表,需要借助第三方库tkinter-css,它提供了对CSS样式表的解析和应用功能。你可以通过pip安装该库: ``` pip install tkinter-css ``` 安装完成后,可以按照以下步骤来使用CSS样式表: 1. 创建一个Tkinter应用程序的主窗口对象。 2. 导入tkinter_css模块,并使用`set_style`函数加载CSS样式表文件。 3. 使用`get_style`函数获取指定控件的样式。 4. 使用`configure`方法将样式应用到控件上。 下面是一个简单的示例代码,演示了如何使用CSS样式表来设置按钮的样式: ```python import tkinter as tk import tkinter_css as tkcss root = tk.Tk() # 加载CSS样式表 tkcss.set_style("style.css") # 创建按钮 button = tk.Button(root, text="Click me") # 获取按钮的样式 style = tkcss.get_style(button) # 将样式应用到按钮上 button.configure(**style) button.pack() root.mainloop() ``` 在上面的示例中,我们创建了一个名为"style.css"的CSS样式表文件,其中定义了按钮的样式。然后通过`set_style`函数加载该样式表,并使用`get_style`函数获取按钮的样式,最后使用`configure`方法将样式应用到按钮上。 需要注意的是,tkinter-css库目前只支持部分CSS属性和选择器,具体可以参考它的文档。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值