CSS解说(一)

前端学习2--选项卡+下拉菜单-功能实现 本文介绍了前端开发中两个常见的交互功能实现:选项卡切换和下拉菜单。选项卡切换通过HTML结构、CSS样式(使用active类控制显示状态)和JavaScript逻辑(事件监听、类名操作)实现内容切换。下拉菜单则通过鼠标事件监听和show类控制显示/隐藏,文中还提供了纯CSS实现方案。这两个案例展示了DOM操作、事件处理和样式控制的核心技术,适合前端初学者实践学习。 阅读详情

目录

初识CSS

CSS样式规则

font字体样式属性

font-size:字号大小

font-family:字体

Unicode字体

font-weight:字体粗细

font-style:字体风格

font综合设置字体样式:

CSS注释

调试工具chrome使用

选择器

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

类选择器

多类选择器

id选择器

id选择器和类选择器的区别 

通配符选择器

伪选择器

链接伪类选择器:

结构(位置)伪类选择器:

目标伪类选择器

CSS复合选择器

交集选择器

并集选择器

后代选择器

子元素选择器

属性选择器

伪元素选择器(CSS)

CSS外观属性

color:文本颜色

line-height:行间距

text-align:水平对齐方式

text-indent:首行缩进

letter-spacing:字间距

word-spacing:单词间距

颜色半透明(CSS3)

文字阴影(CSS3)

引入CSS样式表

行内式(内联样式)

内部样式表(内嵌式)

外部样式表(外链式)

标签显示模式(行、块)

块级元素

行内元素

行内块元素

标签显示模式转换

CSS书写规范

空格规范

属性规范

CSS背景(background)

 背景位置(position) 

背景图片大小(size)

背景图片附着

背景语法简写

背景透明(CSS)

背景缩放(CSS)

多背景(CSS)

凹凸文字

导航栏案例

CSS盒子模型(重点)

盒子边框(border)

盒子边框写法总结表

表格的细线边框

圆角边框(CSS3)

内边距(padding)

fireworks测量工具

导航栏案例之各导航间距相同

外边距(margin)

外边距实现盒子居中

清除元素默认的内外边距

盒子模型布局稳定性

CSS3盒模型

盒子阴影


初识CSS

CSS(Cascading Style Sheets层叠样式表),css的出现是为了解决结构和样式混乱的问题,让结构和样式相分离,主要用于设置HTML页面外观显示样式。

CSS样式规则

选择器 {    属性:属性值; 属性:属性值;  }  如    h1{ color:red;  font-size:25px;}

  • 选择器用于指定CSS样式作用的HTML对象,花括号内是对该对象设置的具体样式。
  • 属性和属性值以“键值对”的形式出现,即属性:属性值;
  • 属性是对指定的对象设置的样式属性,例如字体大小、文本颜色
  • 属性和属性值直接用英文“:”连接
  • 多个“键值对”之间用英文“;”进行区分

font字体样式属性

font-size:字号大小

属性值可以是相对长度单位,也可以是绝对长度单位。网页中默认字号16px,尽量设置偶数数字

类别长度单位说明
相对长度单位em相对于当前对象内文本的字体尺寸
px像素,常用,推荐使用
绝对长度单位in英寸
cm厘米
mm毫米
pt点

font-family:字体

常用字体有宋体、微软雅黑、黑体等。

同时指定多个字体时,中间以逗号隔开,若浏览器不支持第一个字体,则会依次寻找,要设置英文字体时,英文字体必须位于中外字体前,除了单个单词不用加引号,其他都要加引号

格式如: p{  font-family:“Times New Roman”,“微软雅黑”,“宋体”,“黑体”;}

Unicode字体

为避免一些XP等系统不支持设置的中文字体名称,可以使用英文来代替如微软雅黑的英文:font-family:“Microdoft Yahei”

还可以使用Unicode编码来代替中文,浏览器是可以正确解释的

字体名称英文名称Unicode编码
宋体SimSun\5B8B\4F53
微软雅黑Microsoft YaHei\5FAE\8F6F\96C5\9ED1
新宋体NSimSun\65B0\5B8B\4F53
黑体SimHei\9ED1\4F53
楷体_GB2312KaiTi_GB2312\6977\4F53_GB2312
隶书LiSu\96B6\4E66
幼园YouYuan\5E7C\5703
华文细黑STXihei\534E\6587\7EC6\9ED1
细明体MingLiU\7EC6\660E\4F53
新细明体PMingLiU\65B0\7EC6\660E\4F53

推荐使用Unicode编码格式设置字体,且推荐设置宋体或微软雅黑,因为一般电脑都自带这两种字体

font-weight:字体粗细

字体加粗除了用<b>和<strong>标签外,可以使用css来实现,但是css没有语义。

字体粗细的属性值有:normal(=400px)、bold(=700px)、bolder、lighter、100-900px(100的倍数),推荐使用数字

font-style:字体风格

字体倾斜除了用<i>,<em> 标签外,还可以使用css来实现,如font-style:italic;

font-style属性值有:italic  斜体、normal 正常、oblique 倾斜。

font综合设置字体样式:

选择器{   font:font-style  font-weight  font-size/line-height  font-family;  }      即风格 粗细 大小 字体

注意:不能更换顺序,且各个属性以空格隔开,其中不需要的属性可以省略(取默认值),但必须保留font-size和font-family属性。

如  h4  {  italic  bold  14px  “微软雅黑” ; }

CSS注释

快捷键:ctrl+shift+/                                格式:/*  需要注释的内容   */

调试工具chrome使用

先检查元素,左边为html代码,右边为css代码,css代码有错误时会出现黄色三角形,旁边会显示行数。

选择器

指找到目标元素,实现css的样式设置

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

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

标签名{ 属性:属性值1;属性2:属性值;属性3:属性值;}                如p{ color:green;font-size:16px;}

优点是:能快速为页面中同类型的标签统一样式,同时也是缺点,不能设计差异化样式。

类选择器

使用“.”(英文点号)进行标识,后面紧跟类名,类名是可以重复的,id名才不可以。格式为:

.类名{ 属性:属性值1;属性2:属性值;属性3:属性值;}  ,标签内指定相同类名,即class=“类名”

优点是:可以为元素对象定义单独或相同的样式

注意:不建议使用下划线“_”来命名css选择器,使用"-"尤佳。因为JS才是使用下划线“_”。也不要使用纯数字或中文命名。

多类选择器

<head>
    <style>
        .font20{
            font-size:20px;
        }

        .pink{
            color:pink;
        }
    
    </style>
</head>
<body>
    <div class=“font20  pink”> CSS真好玩呢 </div>    <!--字号20px,颜色为粉色-->
    <div class=“font20”> HTML摊牌了,表示需要CSS </div>        <!--字号20px-->
</body>

各个类名中间用空格隔开,多类选择器在后期布局比较复杂的情况下,还是比较常用的。

id选择器

id选择器用“#”标记,后面紧跟id名,格式为:  #font20{ 属性:属性值1;属性2:属性值;属性3:属性值;} 

id选择器和类选择器的区别 

W3C标准规定,id名不允许重复,class名则允许重复

通俗的讲就是id相当于一个人的身份证号码,唯一的;而class则相当于一个人的名字,不唯一。

通配符选择器

用“*”表示,格式为:*{ 属性:属性值1;属性2:属性值;属性3:属性值;} ,指若无特殊设置“键值对”,则通配符选择器设置的“键值对”适用于整个HTML页面。 常用的有  *{  margin:0;padding:0  },建议少用

伪选择器

类选择器是"."作为标识  ,  而伪选择器是":"作为标识。用于向某些选择器添加特殊的效果,比如给链接添加效果:鼠标放上去,鼠标点击时等。

链接伪类选择器:

a:link{  }          未访问的链接

a:visited{  }     已访问的链接  ,少用

a:hover{  }      鼠标移动到链接上时 ,常用

a:active{  }      鼠标点击时的链接  ,少用

注意:顺序尽量不要颠倒

结构(位置)伪类选择器:

:first-child:选择首个子元素的指定选择器

:last-child:选择最后一个子元素的指定选择器

:nth-child(n):匹配第n个子元素,n=even时表偶数,n=odd时表奇数,单个n表从0开始,2n即偶数,2n+1则奇数

:nth-last-child(n):同上面一个,只是是从最后一个子元素开始计数。

<head>
    <style>
        li:first-child{        <!--选择第一夫人,最后一个也类似-->
            color:green;
        }
        li:nth-child(4){        <!--选择第四夫人,括号代表第几的意思,还可以为2n,2n+1-->
                                <!--括号为even时代表偶数,odd时代表奇数-->
            color:green;
        }
    </style>
</head>
<body>
    <ul>
        <li>我是第一夫人</li>
        <li>我是第二夫人</li>
        <li>我是第三夫人</li>
        <li>我是第四夫人</li>
        <li>我是第五夫人</li>
        <li>我是第六夫人</li>
        <li>我是第七夫人</li> 
    </ul>
</body>

目标伪类选择器

:target目标伪类选择器,该选择器用于设置当前选取的活动目标子元素。如HTML的跳转到id首页示例,格式为 :targer{ color:green;}

CSS复合选择器

由两个或多个基础选择器,通过不同的方式组合而成,目的是为了可以定位到更准确更精细的目标元素标签

交集选择器

是由两个选择器构成,第一个为标签选择器,第二个为class选择器,两个选择器之间不能有空格。

格式为:标记选择器,类别选择器{ 属性1:属性值;}             点可理解为”并且“的意思

  如:  h3.fond{  color:red; font-size:25px; }    指给h3标签并且类名为fond设置样式。

用的相对较少,不建议使用

并集选择器

各个选择器通过逗号连接而成,为这些选择器定义相同的CSS样式。逗号可理解为”和“的意思。

如:  .fond,.font1,#test,h3{ color:green;font-size:16px; }  表示.fond、.font1、h3和#test这四个选择器都执行颜色、字体大小的样式设置。

后代选择器

又称包含选择器,用来选择元素或元素的后代,其写法就是把外层标签写在前面,内层标签写在后面,中间用空格分开,当标签发生嵌套时,内层标签就称为外层标签的后代。 子孙后代都可以这样选择,无限制空格后必须为子代。

如:.fond  p{ color:green;font-size:12px;}

父子选择器

只能选择某元素的子元素,不能为孙代元素,且父级标签在前面,子级标签在后面,中间>连接,且符号左右各保留一个空格。

如:  .demo > h3{ color:green; }  此处h3必为类名为demo的下一级标签,不能是下下级标签。

兄弟选择器

M ~ N 当前M元素下的所有兄弟N标签

属性选择器

指选取标签带有某些特殊属性的选择器,我们称其为属性选择器。

格式/示例含义
E[ attr ]存在atttr属性即可
E[ attr =value ] 如 div[class=value]{  }属性值完全等于value
E[ attr *=vae ]属性值只要包含vae字符就可以
E[ attr ^=vae ]属性值的vae字符在开始位置
E[ attr $=vae ]属性值的vae字符在结束位置

 

伪元素选择器(CSS)

伪类选择器是以单个冒号:开始,而伪类选择器是以双冒号::开始。格式规范如下

  • 如   p::first-letter  {     }  意为给p标签的文本第一个字或单词设置样式(可为中文、日文、韩文等) 如设置首字母16px
  • 如   p::firet-line  {       }   意为给p标签的文本第一行设置样式   如字体大小
  • 如   p::selection  {      }   意为当鼠标选择p标签的文本时的样式,如文本为红色
  • E::before和E::after   指在E标签的内部开始位置和结束位置插入一个内容,该E标签必须为行内或块元素,且必须要结合content属性使用。如    div::after  { content:”welcom!“; }   意为在div盒子里的最后位置插入welcom!                                                   

CSS外观属性

color:文本颜色

color属性用于定义文本的颜色,取值方式有三种。

  • 直接英文颜色值,如color:green;
  • 十六进制:如color:#FF0000,最常用的方式
  • RGB代码:如color:rgb(255,0,0);表红色。

line-height:行间距

行与行之间的距离,即行高。属性单位有三种,分别为px、em和%,常用的是px。

text-align:水平对齐方式

用于设置文本内容的水平对齐,相当于html的align对齐属性,属性值有:left(默认的左对齐)、right、center

text-indent:首行缩进

允许使用负值。一般用em单位,1em=一个字宽度,首行缩进则为text-indent:2em;

letter-spacing:字间距

即字符与字符之间的空白,允许使用负值,属性值可为不同单位的数值,一般为px单位。默认值为normal。

word-spacing:单词间距

针对英文单词的单词与单词之间的距离,对中文汉字无效。而letter-spacing属性也可用于英文,只是效果为字母之间的距离。

颜色半透明(CSS3)

语法格式:    color:rgba(r,g,b,a);  a是alpha  透明的意思,取值范围0~1,0为透明。如color:rgba(0,0,0,0.5);

文字阴影(CSS3)

语法格式:text-shadow:水平位置  垂直位置  模糊距离  阴影颜色;如 text-shadow:3px  5px  1px  rgba(0,0,0,0.5);

值描述
h-shadow必须。水平阴影的位置,单位px
v-shadow必须。垂直阴影距离,单位px
blur可选。模糊的距离,单位px
color可选。阴影的颜色,可为rgb或rgba

 

引入CSS样式表

行内式(内联样式)

通过style属性来在标签内设置样式,格式为 <标签名 style=”属性1:属性值;属性2:属性值;“>

如  <div style="color:green; font-size:16px;">请叫我第一夫人</div>,      大规模的代码不建议这样写

内部样式表(内嵌式)

内嵌式是将css代码集中写在HTML文档的head头部标签内,并且用style标签定义,基本语法格式:

<head>
    <style type="text/css">           <!--type表类型,css表文本-->
        选择器{属性1:属性值;属性2:属性值;}
    </style>
</head>

外部样式表(外链式)

指将所有样式放在一个或多个css的外部样式表文件中,在head头部标签内通过link标签将css链接到html文档中

格式为:   <link href="css文件的路径" type=”text/css“  rel=”stylesheet“ />

其中link为单标签,三个属于意思为:

href:定义所链接外部样式表文件的URL,可以是相对路径,也可以是绝对路径

type:定义所链接文档的类型,这里需指定为”text/css“指链接的外部文件为CSS样式表

rel:定义当前文档与被链接文档之间的关系,这里需指定为”stylesheet“,表示被链接的文档是一个样式表文件

标签显示模式(行、块)

块级元素

每个块级元素通常会独自占据一整行或多整行,可以对其设置宽度、高度、对齐等属性,常用于网页布局和网页结构的搭建。

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

块级元素特点:

  • 总是从新行开始
  • 高度、行高、外边距以及内边距都可以控制
  • 宽度默认是容器的100%
  • 可以容纳内联元素和其他块元素

行内元素

也叫内联元素,不占有独立的区域,仅仅靠自身的字体大小和图像尺寸来支撑结构,一般不可以设置宽度、高度、对齐等属性,常用于控制页面中文本的样式。

常见的行内元素有:<a>、<strong>、<b>、<em>、<i>、<del>、<s>、<ins>、<u>、<span>等,其中<span>标签是最典型的行内元素。

行内元素特点:

  • 和相邻的行内元素排在一行上
  • 高、宽设置无效,但水平方向的padding和margin可以设置,垂直方向的无效
  • 默认宽度就是它本身内容的宽度
  • 行内元素只能容纳文本或其他行内元素,即行内元素不能嵌套块级元素,如<p> <div> </div> </p>。(a特殊)

注意:只有文字才能组成段落,因此p标签不能放div等块级元素,同理不能放块级元素的标签还有h1~h6,dt,它们都是文字类块级标签。

行内块元素

在行内元素中有几个特殊的标签,<img />、<input />、<td>,可以对它们设置宽度和高度。

行内块元素特点:

  • 和相邻行内元素(行内块)在一行上,但是之间会有空白间隙
  • 默认宽度就是它本身内容的宽度
  • 宽度、行高、外边距以及内边距都可以控制

标签显示模式转换

  • 块转行内:display:inline;     如div块元素转为行内元素
  • 行内转块:display:block;     如span行内元素转为块级元素
  • 块级元素和行内元素转为行内块元素: display:inline-block;      如a标签的链接转为行内块元素,即可设置标签的宽高

CSS书写规范

空格规范

【强制】选择器与 { 之间必须包含空格。示例:    .class  {  }

【强制】属性名与之后的 :之间不允许包含空格,:与属性值之间必须包含空格。示例:    font-size:  12px;

选择器规范

【强制】当一个要设置的样式里面包含多个选择器时,每个选择器必须独占一行。示例:

.post,
.content-head,
.content-body, {

    font-size: 16px;
}

【建议】选择器的嵌套层级应不大于3,位置靠后的限定条件应尽可能精确。  如.page ul li a {   }

属性规范

【强制】属性定义必须另起一行。

【强制】属性定义后必须以分号;结尾。

CSS背景(background)

可添加背景颜色和背景图片,以及进行背景图片设置

属性含义
background-color背景颜色
background-image:url();背景图片地址
background-repeat:no-repeat;/repeat-x;....背景图片是否平铺
background-position背景位置
background-attachment:scroll;/fixed;背景固定还是滚动
背景的合写: background:背景颜色  背景图片地址  背景平铺  背景滚动  背景位置

 背景位置(position) 

语法:

background-position:length   length;    说明:length单位为百分数或精确的px,第一个代表横轴,第二个代表纵轴

background-position:position   position;   说明:属性值position为top、center、bottom、left、right方位名词,且填写的方位名词无顺序要求。

如只有两个属性值,则默认第一个为x轴,第二个为y轴值或居中,注意:位置设置必须先指定background-image属性。

注意这里的坐标与我们数学里的有点不大一样,x轴与数学一致,而y轴则是越往下数值越大。

背景图片大小(size)

background-size:30px 30px;(当背景图片过大撑开盒子时,可设置背景图片的大小)            而background-position是改变背景图片的位置

背景图片附着

语法格式:   background-attachment:scroll; /fixed;      

scroll:背景图像随对象内容滚动

fixed:背景图像固定,不随内容滚动而滚动

背景语法简写

background:背景颜色 背景图片地址 背景平铺  背景滚动  背景位置;   (无顺序要求,但是x、y轴不能分开) 

如:   background:#000  url(image.jpg)   repeat-y   scroll   50%  0;

背景透明(CSS)

语法格式:   background:rgba(0,0,0,0.3);      //a是alpha透明度,范围为:0~1。

注意:背景透明是指盒子背景透明,盒子里面的内容不受影响,同样也可以给文字和边框透明,都是rgba的格式书写。

背景缩放(CSS)

通过background-size属性来设置背景图片的尺寸,就像设置的img的尺寸一样。属性值如下:

  • 单位为px或百分比,设置百分比时,参照盒子的宽高。注意:尽量设置一个值,防止图片失真。
  • 属性值为cover时,为保证图片宽度高度和盒子宽高相等,图片会进行等比例缩放,如有溢出盒子则会被隐藏。
  • 属性值为contain时,前提是图片完整显示,所有会自动调整缩放比例,宽高有一方与盒子相等即可。

多背景(CSS)

以逗号分隔可以设置多背景,可用于自适应布局。

  • 一个元素可以设置多重背景图像
  • 每组属性间使用逗号分隔
  • 如果设置的多重背景图之间存在着交集(即存在着重叠关系),则前面的背景图会覆盖在后面的背景图之上。
  • 为避免背景色将图像覆盖,我们需要把背景色设置在最后一组上
body{
    background: url(flower.jpg)  no-repeat scroll 10px 20px/50px 60px ,
                url(sun.jpg) no-repeat scroll 10px 50px/70px 90px,
                url(sea.jpg) no-repeat scroll 10px 30px/70px 50px #aaa;
}

凹凸文字

  • 首先文字颜色和背景颜色要相同
  • 其次就是设置阴影的问题
  • 凸起的文字设置形式为:上左为亮色(上y轴为负数,左x轴为负数),下右为黑色(下y轴为正数,右x轴为正数)
  • 凹文字效果设置形式为:和凸起文字xy轴设置刚好相反,上左为黑色,下右为亮色
<head>
		<meta charset="UTF-8">
		<style>
			body{
				background-color: gray;
			}
			div{
				font: 700 60px "微软雅黑";
				color: gray;
				
			}
			div:first-child{
				/*text-shadow:水平位置 垂直位置 模糊距离 阴影颜色*/
				text-shadow: 1px 1px 1px #000000,
							-1px -1px 1px #000000;
			}
			div:last-child{
				text-shadow: -1px -1px 1px #000000,
							 1px 1px 1px #000000;
			}
		</style>
</head>
	<body>
		<div>我是凸起文字</div>
		<div>我是凹下的文字</div>
	</body>

导航栏案例

文本的装饰

text-decoration属性  用来给a标签的链接修改装饰效果

值描述
none去掉链接的下划线
underline链接默认的自带下划线
overline定义文本之上的一条线
line-through定义穿过文本的一条线
<head>
		<meta charset="UTF-8">
		<title>导航栏块形设置</title>
		<style type="text/css">
			body{
				width: 900px;
				height: 100px;
				background-color: #000000;
			}
			a{
				font-size: 22px;
				display: inline-block;/*把a标签的行内元素转换为行内块元素*/
				color: #7FFF00;
				width: 200px;
				height: 50px;
				background-color: #FF4400;
				text-align: center;   /*文字水平居中*/
				line-height: 50px;   /*把行高设置为盒子的高度,就可以使文字垂直居中了*/
				text-decoration: none;   /*取消默认的链接下滑线*/
			}
			a:hover{   /*鼠标经过时,给链接添加背景图片*/
				background: url(../image/icon/bg_ie_0fc292ea.png),repeat-x;
			}
		</style>
	</head>
	<body>
		<a href="#">专区说明</a>
		<a href="#">申请物资</a>
		<a href="#">兑换奖励</a>
		<a href="#">下载游戏</a>
	</body>

使用技巧:在一行内的盒子内,想要设置文字垂直居中,可以将行高设置等于盒子的高度,即line-height:50px;

CSS盒子模型(重点)

其实,CSS就三个大模块,盒子模型、浮动、定位。其余的都是细节。

所谓盒子模型就是把HTML页面中的元素看作是一个矩形的盒子,也就是一个盛装内容的容器,每个矩形都由元素的内容、内边距(padding)、边框(border)和外边距(margin)组成。前面学过的双标签都是一个盒子。

一个盒子中,都是相对content内容来说的padding和margin

看透网页布局的本质:把网页元素比如文字图片等,放入盒子里面,然后利用CSS摆放盒子的过程,就是网页布局。

什么是盒子呢?  可以拿收到的手机快递为例,整个泡沫的大小为一个盒子,那么手机相当于content内容、手机与泡沫边的距离或泡沫的厚度为padding、盒子的厚度为border、而与其他盒子的距离则为margin。

所有的文档元素(标签)都会生成一个矩形框,我们称为元素框,它描述了一个文档元素在网页布局汇总中所占的位置大小,因此,每个盒子除了有自己大小和位置外,还影响着其他盒子的大小和位置。

盒子边框(border)

边框就是那层皮,如橘子皮

语法:             border:border-width  border-style  border-color;

其中,border-style为边框样式属性,用于定义页面中边框的风格,属性值有:

  • none:没有边框即忽略所有边框的宽度(默认值)
  • solid:边框为单实线(最为常用的)
  • dashed:边框为虚线
  • dotted:边框为点线
  • double:边框为双实线

盒子边框写法总结表

设置内容样式属性常用属性值
上边框

border-top-style:样式;border-top-width:宽度;border-top-color:颜色;

综合:border-top:宽度  样式  颜色;

 
下边框同上边框,将top改为bottom,如border-bottom-style:样式; 
左边框同上边框,将top改为left,如border-left-style:样式; 
右边框同上边框,将top改为right,如border-right-style:样式; 
样式综合设置border-style:上边[右边 下边 左边]

none无(默认)、solid单实线、

dashed虚线、dotted点线、

double双实线

宽度综合设置border-width:上边[右边 下边 左边]像素值
颜色综合设置border-color:上边[右边 下边 左边]颜色值、#十六进制、rgb(r,g,b)
边框综合设置border:四边宽度 四边样式 四边颜色; 

表格的细线边框

我们知道在HTML中,即使在table标签里写明<table cellspacing:”0“ cellpadding:”0“>也只是得到较粗的合并边框,这里我们可以用css来得到表格的细线边框。

table{ border-collapse:collapse;}       此处的属性及属性值border-collapse:collapse;表示边框合并在一起。

圆角边框(CSS3)

语法格式:    border-radius:左上角 右上角 右下角 左下角;    单位是px或百分比,表多少px或百分比弧度的意思。

如: border-radius:20px;  四个参数时为顺时针顺序且从左上角开始,两个参数时为对角线相同原则。 使用此属性前要有盒子的宽度和高度属性设置。

内边距(padding)

用于设置内边距,指边框于内容之间的距离。单位为px

padding-top:上内边距

padding-right:右内边距

padding-bottom:下内边距

padding-left:左内边距

综合写法为    padding:上 右 下 左; (顺时针方向,且从上内边距开始)

注意:当有一个属性值时指整个内边距都为设置的属性值;两个属性值时第一个代表上下,第二个代表左右

fireworks测量工具

模仿一个网页的制作,我们需要知道这个网页各部分的具体颜色和各部分的宽高,这是可以用fireworks测量工具,常用到的菜单有滴管工具、切片工具、锁定图层等

导航栏案例之各导航间距相同

<head>
		<meta charset="UTF-8">
		<title>新浪的导航栏模仿案例</title>
		<style type="text/css">
			nav{
				background-color: whitesmoke;
				height: 41px;
				border-top: 3px solid black;
				border-bottom: 1px solid black;
			}
			nav a{
				display: inline-block;
				color:  #696969;
				text-decoration: none;   /*取消链接下划线*/
				padding: 0 15px;   /*内边距之上下为0,左右为15px*/
				text-align: center;
				line-height: 41px;   /*行高等于盒子高度即可实现文字垂直居中*/
			}
			nav a:hover{  /*链接伪类选择器,鼠标经过时样式设置*/
				background-color: darkgray
		</style>
	</head>
	<body>
		<nav>
			<a href="#">设为首页</a>
			<a href="#">手机新浪网</a>
			<a href="#">移动客户端</a>
			<a href="#">博客</a>
			<a href="#">微博</a>
			<a href="#">关注我</a>
		</nav>
	</body>

外边距(margin)

用于设置外边距,即会在元素之间创建“空白”,这段空白通常不能放置其他内容。

margin-top:上外边距      margin-right:右外边距    margin-bottom:下外边距     margin-left:左外边距

综合写法:margin:上  右   下  左;     (顺时针顺序)

外边距实现盒子居中

让一个盒子实现水平居中,需要满足两个条件

  1. 必须是块级元素
  2. 盒子必须指定了宽度(width)

然后给左右的外边距都设置outo,即可实现块级元素的水平居中效果。如代码:     margin:20px  auto;上下为20px,左右水平居中。

清除元素默认的内外边距

为了更方便地控制网页中的元素,制作网页时,可使用如下代码清除元素默认的内外边距

*{
    padding:0; <!--清除内边距-->
    margin:0;   <!--清除外边距-->  
}

实际开发中都不这样设置,会选择 div,dl,dt,dd,ul,ol,li,h1,h2,h3,h4,h5,h6,pre,form,fieldset,input,textarea,blockquote,p{ padding:0;margin:0}

注意:行内元素只有左右内外边距,没有上下内外边距,以后尽量不要给行内元素如span设置上下内外边距,或可通过设置display来设置成为块级元素。

盒子模型布局稳定性

其实大多数情况下,内边距、外边距是可以混用的,没有规定这个情况下要用内边距,那个情况下要用外边距,真实情况下哪个方便就用哪个。但是,总有一个最好用的吧,这个情况下我们根据稳定性来分,建议如下:

width>padding>margin

原因:

  1. margin会有外边距合并,还有ie6下面的margin加倍的bug(讨厌)所以最后使用
  2. padding会影响盒子大小,需要进行加减计算(麻烦)其次使用
  3. width 没有问题,我们经常使用宽度剩余法高度剩余法来做

CSS3盒模型

CSS3中可以通过box-sizing属性来指定盒模型,即可指定属性值为content-box或border-box,这样我们计算盒子大小的方式就发生了改变。

  1. box-sizing:content-box;指初定义的盒子宽高会随着所加的padding、border增加而增加,即盒子大小为width+padding+border,让元素维持W3C的标准Box Mode
  2. box-sizing:border-box;指给盒子定义的宽高是绝对值了,后添加的padding、border都是在盒子内改变。即盒子大小为width,padding、border都包含到width里面的。

盒子阴影

语法格式:      box-shadow:水平阴影  垂直阴影  模糊距离  阴影尺寸(影子大小) 阴影颜色  内/外阴影

如:  box-shadow:10px  10px  8px   5px  rgba(255,255,255,0.3);

值描述
h-shadow必须。水平阴影位置,允许负值
v-shadow必须。垂直阴影位置,允许负值
blur可选。模糊距离
spread可选。阴影的尺寸即影子大小
color可选。阴影的颜色,rgba();
inset可选。内部阴影。不写默认外部阴影(outset)
  • 前两个属性是必须写的。其余可以省略
  • 外部阴影outset不能写上去,写上去所有属性值均无效,要写只能写inset内部阴影,不然不写默认外部阴影outset。
HTML 行间距的设置方法与问题 设置的行间距可使用style="line-height:3px;"来实现。 但是,在最后一行文字要是也是这么设置的话,就会出现文字只出现一半的情况。如下图1。 解决方法如下:在最后一行文字的下面,再加一个空的,就解决了,如图2。 立即下载

相关推荐

GD32模拟IIC读写DVC1124

GD32模拟IIC读写集澈AFE芯片DVC1124

ponyma_的博客 1226

html+css复习(三)

今日复习继续,开始css。 css 网页分为三部分: 结构(html) 表现(css) 行为(javascript) css(层叠样式表) 通过css能为网页设置样式,可以理解为化妆 1.1内联样式 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>鲁大学生网</title> </head> <body>

lovestar墨竹的博客 296

基于STM32F103C8T6的红外循迹避障小车

编程思路:控制核心板IO口的电平(即电机驱动模块的AIN1,AIN2,BIN1,BIN2)从而控制AO1、AO2、BO1、BO2的电平高低,进而控制电机使其正转、反转、不转。由于单纯地拉高拉低电平只能让电机在转与不转的状态切换,故决定利用TIM4的两个通道分别产生两路PWM信号来控制电机速度,四个电机两个一组,同一侧的两个连接在同一个PWM上。(#include "dianji.h"文件中同时写了对循迹模块引脚的初始化)

weixin_48743503的博客 1万+

CSS入门(全)

文章目录6、css样式6-1 css样式的优势6-2css语法注意:6-3css注释7、css样式基本知识7-1 内联式css样式注意:7-2 嵌入式css样式7-3 外部式css样式注意:7-4 三种方法的优先级8、CSS选择器8-1选择器定义8-2标签选择器8-3类选择器注意:使用方法:8-4 ID选择器8-5 类和ID选择器的区别相同点:不同点:8-6子选择器包含(后代)选择器8-8通用选择...

han_hhh的博客 2390

告别MRT!用ArcGIS脚本批量处理MODIS数据,从HDF到NDVI/ET成品图全流程(附Python代码)

本文详细介绍了使用ArcGIS Python脚本自动化处理MODIS数据的全流程,从HDF文件提取到生成NDVI/ET成品图。通过优化子数据集提取、智能镶嵌策略和投影转换等核心步骤,大幅提升处理效率,告别传统MRT工具的手工操作。附带的Python代码可直接应用于实际项目,特别适合批量处理大规模遥感数据。

weixin_30872337的博客 220

手把手教你使用YOLOv11完成人脸分类识别,YOLOv11人脸识别,解决中文乱码问题,全网最详细教程

手把手教你使用YOLOv11完成人脸分类识别,YOLOv11人脸识别,解决中文乱码问题,全网最详细教程

在职AI算法工程师,擅长计算机视觉,YOLO目标检测、分割等,擅长web、pyqt界面可视化,好内容持续更新中,来这里跟大家一起学习,共同进步 4445

Css font-family字体对照表

Css font-family字体对照表 宋体 SimSun 黑体 SimHei 微软雅黑 Microsoft YaHei 微软正黑体 Microsoft JhengHei 新宋体 NSimSun 新细明体 PMingLiU

wuhulala的休息室 3万+

【RAG文档解析优化】复杂Excel表格处理

—从识别表格边界,到恢复内部结构,再到生成RAG友好的表示——我们可以系统性地将这些“带刺的玫瑰”驯服。虽然代码实现可能充满细节和挑战,但其带来的回报是巨大的:一个更干净、更可靠的知识库,以及一个能真正理解和利用表格数据、从而提供精准答案的RAG系统。为了人类阅读的便利性,制作者常常会使用合并单元格来创建标题、使用多层表头来组织复杂的列、在同一个Sheet页中放置多个相关的表格,并添加大量的注释说明。它们就像一朵朵“带刺的玫瑰”,虽然蕴含着宝贵的数据,但如果直接用传统的方法(如。

kakaZhui的博客 853

怎样通过font属性控制CSS字体样式?

使用font-family属性设置字体时,需要注意以下几点。使用fomt属性综合设置字体样式时,必须按上述语法格式中的顺序书写,各个属性以空格隔开(line-height用于设置行间距,属于文本外观属性,在后面将具体介绍)。其中,不需要设置的属性可以省略(省略的属性将取默认值),但必须保留fomt-size和 font-family属性,否则font 属性将不起作用。从图中可以看出,font属性设置的样式并没有对第二个段落文本生效,这是因为对第二个段落文本的设置中省略了字体属性“font-family”。

zy1992As的博客 1645

亚马逊爬虫实战:中国商家信息(电话)爬取

import os), # 保存图片的路径# 搜索关键词"keywords":["毛巾","衣服"],"product_number": 1000000000000000, # 分页获取数量# 和url一一对应 个数要一样"remarks": ["备注1"],# 以下内容非专业人员请勿更改,请找开发人员更改. 对应的是amazon_product_url_setting文件中名称.},

youbingchen的博客 1524

深度学习实战35-图卷积神经网络GCN模型的搭建与应用

大家好,我是微学AI,今天给大家介绍一下深度学习实战35-图卷积神经网络GCN模型的搭建与应用,GCN是一种用于处理图结构数据的深度学习模型,它可以捕捉节点之间的拓扑关系和局部特征,并进行图级别的预测和分类任务。下面将介绍如何搭建并应用GCN模型。

微学AI的博客 2226

修改<p>标签的样式——在html中

<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>修改文本的颜色(w3cschool.cn)</title> </head> <body> <p id="p1">原文本</p> <p id="p2">修改样式后的文本 </p> <script> document.getElement

qq_45772415的博客 3247

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

重构技巧一:解说css3 @media实现网页自适应

@media all and (max-width:1080px) { html { font-size:62.5% } } @media all and (max-width:720px) { html { font-size:41.666% } } @media all and (max-width:480px) { html { font-s

Song MM 的专栏 1003

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

flutter 文字过长超出范围_CSS处理文本过长或超出部分(解说一)

在网页开发中,经常会遇到文本超出了限定的范围,尤其是屏幕尺寸的大小导致的,着实影响美观,这个时候,就需要用css对其进行处理。下面的方法是我在实际工作中总结出来的,给大家参考一下。2018-9-11 by yl这是在实际应用中遇到的一个新的需求,就是指定文本行数,如果超出就用省略号代替.content{ /*设置文本为多行,如果超出长度用省略号代替*/width: 200px;word-brea...

weixin_39977488的博客 2560

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

css3之关键帧的解说

本文主要讲解CSS3中的关键帧的知识点,关键帧类似于animate动画的效果,但是关键帧是css的内容,可以省略掉js。

点点的java小栈 2737

CSS优先级的详细解说

shengalaxy的专栏 232

CSS解说(二)

目录 浮动(float) 普通流(normal flow) 浮动(float) 什么是浮动? 浮动详细内幕特性 总结:浮动(浮漏特) 版心和布局流程 布局流程 一列固定宽度且居中 两列左窄右宽型 通栏平均分布型 浮动(float) 普通流(normal flow) 也称标准流或文档流。我们说的网页布局的核心,就是用CSS来摆放盒子位置,那么如何把盒子摆放到合适的位置? ...

Problem_Girl的博客 638

3行CSS3代码实现瀑布流布局(代码解说)

本文介绍了如何使用3行核心CSS代码实现瀑布流布局,主要利用CSS3的多列布局特性。通过column-count定义列数和column-gap设置列间距,配合break-inside: avoid防止项目被分割,即可快速创建瀑布流效果。该方法简洁高效,适合图片画廊、商品展示等场景,但也存在列高不统一等缺点。文章还提供了完整的代码示例和响应式优化建议,帮助开发者快速实现这一流行布局模式。

漫画之迷学编程 901

CSS功能解说

什么是CSS呢?   CSS是Cascading Style Sheets(层叠样式表)的简称.   CSS语言是一种标记语言,它不需要编译,可以直接由浏览器执行(属于浏览器解释型语言).   在标准网页设计中CSS负责网页内容(XHTML)的表现.   CSS文件也可以说是一个文本文件,它包含了一些CSS标记,CSS文件必须使用css为文件名后缀.   CSS是由W3C的CSS工作组产生和维

会吃狼的鳄鱼 1639

css里box是什么文件,CSS Box盒模型的详细解说

CSS盒子模型在于你做css之后每个元素都由一个包围该元素的矩形框定义。了解框模型的工作原理是理解CSS并更好地控制布局和演示的关键。话不多说,让我们直接讨论一下CSS盒子模型是什么,一个盒子如何影响它周围的盒子,以及一些常见的浏览器问题。简而言之,CSS中的盒模型描述了为HTML元素生成的框。在下面的这篇文章中,您将学习关于CSS盒子模型的示例和技巧,以便最好地利用CSS开发。什么是CSS Bo...

weixin_35262602的博客 1083

CSS文字换行详细解说

 本文列举了兼容 IE 和 FF 的换行 CSS 推荐样式,详细介绍了word-wrap同word-break的区别。兼容 IE 和 FF 的换行 CSS 推荐样式:  最好的方式是word-wrap:break-word; overflow:hidden;  而不是  word-wrap:break-word; word-break:break-all;  也不是  wo

nevEr leAve 681

NarratoAI:零代码AI视频解说神器,3步打造专业级解说视频

你是否曾为制作视频解说而烦恼?需要花费大量时间剪辑视频、撰写文案、配音配乐,整个过程既繁琐又耗时。现在,有了NarratoAI这款开源工具,这一切都将变得简单无比! NarratoAI是一款基于AI大模型的自动化影视解说工具,它能一键完成文案撰写、视频剪辑、配音和字幕生成的全流程,让普通用户也能轻松制作专业级解说视频。无论你是自媒体创作者、教育工作者还是企业营销人员,都能通过这个强大工具快速提升

gitblog_00949的博客 436

标梵微博解说CSS布局

CSS页面布局技术允许我们拾取网页中的元素,并且控制它们相对正常布局流、周边元素、父容器或者主视口/窗口的位置。在这个模块中将涉及更多关于页面布局技术的细节: 正常布局流 display属性 弹性盒子 网格 浮动 定位 CSS 表格布局 多列布局 每种技术都有它们的用途,各有优缺点,相互辅助。通过理解各个布局方法的设计理念,你能够找到构建你想要的网页需要的布局方案。 正常布局流(Normal flow) 正常布局流(normal flow)是指在不对页面进行任何布局控制时,浏览器默认的HTML布局方式。让我

标梵互动 402

CSS的定位解说

一、position定位的定义: CSS定位的内容是:position:relative | absolute | static | fixed static 没有特别的设定,遵循基本的定位规定,不能通过z-index进行层次分级 relative 不脱离文档流,参考自身静态位置通过top,bottom,left,right定位,并且可以通过z-index进行层次分级。 absolut...

weixin_30518397的博客 133
上一篇: HTML基本介绍(一)
下一篇: CSS解说(二)
Halle!
博客等级 码龄7年 303粉丝 133原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值