初学前端CSS教案(理论+代码+效果图)

news2024/12/25 12:56:10

文章目录:

一:前言

1.什么是CSS呢?

2.环境

3.HTML5相关

4.瞅瞅CSS代码样式什么样?

二:编码规范

1.声明

2.注释

3.选择器

3.1 块元素选择器{}

3.2 id选择器 " # "

3.3 class选择器 " . "

3.4 通用选择器 " * " 

3.5 属性选择器

3.6 多个class选择器

4.样式表

4.1 外部样式表(External style sheet)

4.2 内部样式表(Internal style sheet)

4.3 内联样式 (Inline style)

4.4 优先级: 内联样式>内部样式表>外部样式表

三:常用CSS基础语法

1.尺寸

2.BackGround背景

2.1 背景颜色

2.2 背景图片 

3.Text文本

4.Fonts字体

5.Link链接

6.列表(有序 无序)

7.表格Table

8.盒子Div

8.1 Border边框

8.2 Outline轮廓

8.3 Margin外边框

8.4 Padding内边距填充

9.块与内联元素

10.显示隐藏

11.位置相关

11.1 Position定位

11.2 Overflow内容溢出显示方式

11.3 Float浮动

11.4 对齐方式

12.导航栏

13.下拉菜单

14.表单Input

15.视频video

16.权重!important(初学了解)

 17.图片廊(初学了解)

18.计数器(初学了解)

四:后期学习建议


一:前言

1.什么是CSS呢?

什么是CSS?        答:层叠样式表 (Cascading Style Sheets)。就是修饰样式的一种编码规范 
    



扩展:Html5、CSS3、JS的区别和关系
                           学习顺序                               以鲤鱼游泳为例子                                        
    Html:骨架             第一步(demo.html)                     画鱼的轮廓骨架
    
    CSS:修饰样式          第二步(demo.css)                   给鱼上颜色,修饰线条样式,加阴影....

    JS:动态               第三步(demo.js)                       让鱼游动起来




学习版本也在不断更新(里面有很多功能的丰富化扩展),比如:
    HTML——>H5
    CSS ——>C3

2.环境

1.运行环境:系统(Windows、linux、unix....)+浏览器(谷歌、火狐、Edge.....)

2.编辑环境:vscode 、HBuilderX、WebStorm、Sublime Text、.Notepad++中文版.、记事本......

如果不想安装软件(就用记事本)
    第一步:新建记事本        (demo.text)
    第二步:写好代码
    第三步:另存为网页格式    (demo.html)
    第四步:点击运行,会在浏览器打开

 

3.HTML5相关

HTML大致框架

<!-- 声明:让浏览器能够正确地渲染页面 -->
<!DOCTYPE html>
<html>
	<!--头-->
	<head>
		<!--编码格式-->
		<meta charset="utf-8">
		<!--标题-->
		<title></title>
		<!--样式-->
		<style>
            ..........
		</style>
		<!--样式-->
	</head>
	<!--头-->

	<!--身体-->
	<body>
		<h2>标签</h2>
		<p>文本</p>
		<div class="dropdown">盒子</div>
		<button class="dropbtn">按钮</button>
		<a href="http://www.baidu.com">超链接</a>
        ........
	</body>
	<!--身体-->
</html>

4.瞅瞅CSS代码样式什么样?

代码

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title>四川文轩职业技术学院</title>
		<style>
			body {background-color:yellow;}
			h1   {font-size:36pt;}
			h2   {color:blue;}
			p    {margin-left:50px;}
		</style>
	</head>

	<body>

		<h1>这个标题设置的大小为 36 pt</h1>
		<h2>这个标题设置的颜色为蓝色:blue</h2>

		<p>这个段落的左外边距为 50 像素:50px</p> 

	</body>
</html>

运行效果展示

二:编码规范

1.声明

p{color:red;text-align:center;}

p
{
    color:red;
    text-align:center;
}



声明
    声明范围:大括号 {} 括起来            
    声明=属性:值
    声明总是以分号 ;结束

2.注释

//这是个注释


/*这是个注释*/


<!-- 这是个注释 -->

3.选择器

3.1 块元素选择器{}

p{ }: 为所有 p 元素指定一个样式


.marked{ }: 为所有 class="marked" 的元素指定一个样式


.marked p{ }: 为所有 class="marked" 元素内的 p 元素指定一个样式


p.marked{ }: 为所有 class="marked" 的 p 元素指定一个样式


后代选择器(以空格     分隔)
    div p
    {
      background-color:yellow;
    }


子元素选择器(以大于 > 号分隔)
    div>p
    {
      background-color:yellow;
    }


相邻兄弟选择器(以加号 + 分隔)
    div+p
    {
      background-color:yellow;
    }


普通兄弟选择器(以波浪号 ~ 分隔)
    div~p
    {
      background-color:yellow;
    }

举例 

h1,h2,p
{
	color:green;
}




<!DOCTYPE html>
<html>
	<head>
	<meta charset="utf-8"> 
	<title>元素选择器(runoob.com)</title> 
	<style>
		body {color:red;}
		h1 {color:#00ff00;}
		p.ex {color:rgb(0,0,255);}
	</style>
	</head>

	<body>
		<h1>这是标题 1</h1>
		<p>这是一个普通的段落。请注意,本文是红色的。页面中定义默认的文本颜色选择器。</p>
		<p class="ex">这是一个类为"ex"的段落。这个文本是蓝色的。</p>
	</body>
</html>

3.2 id选择器 " # "

#para1
{
    text-align:center;
    color:red;
}

 代码

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8"> 
		<title>id 选择器(runoob.com)</title> 
		<style>
			#para1
			{
				text-align:center;
				color:red;
			} 
		</style>
	</head>

	<body>
		<p id="para1">Hello World!</p>
		<p>这个段落不受该样式的影响。</p>
	</body>
</html>

运行效果展示

3.3 class选择器 " . "

所有            .center {text-align:center;}
特定            p.center {text-align:center;}

代码

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8"> 
		<title>class选择器(runoob.com)</title> 
		<style>
			p.center
			{
				text-align:center;
			}
		</style>
	</head>

	<body>
		<h1 class="center">这个标题不受影响</h1>
		<p class="center">这个段落居中对齐。</p> 
	</body>
</html>

运行效果展示

3.4 通用选择器 " * " 

所有设置

*{
	color:#ff0000;
}

3.5 属性选择器

 包含标题(title)的所有元素变为蓝色

[title]
{
    color:blue;
}

标题title='runoob'元素的边框样式

[title=runoob]
{
    border:5px solid green;
}

包含指定值的title属性的元素

[title~=hello] { color:blue; }




<h1 title="hello world">Hello world</h1>
<p title="student hello">Hello CSS students!</p>

3.6 多个class选择器

多个 class 选择器可以使用空格分开

代码

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8"> 
		<title>多个 class 选择器可以使用空格分开(runoob.com)</title> 
		<style>
			.center {
				text-align:center;
			}
			.color {
				color:#ff0000;
			}
		</style>
	</head>

<body>
	<h1 class="center">标题居中</h1>
	<p class="center color">段落居中,颜色为红色。</p> 
</body>
</html>

运行效果展示

4.样式表

4.1 外部样式表(External style sheet)

适用于:给很多页面加样式


<link rel="stylesheet" type="text/css" href="mystyle.css">
浏览器会从文件 mystyle.css 中读到样式声明

4.2 内部样式表(Internal style sheet)

适用于:单个文档需要特殊的样式时


<head>
    <style>
        hr {color:sienna;}
        p {margin-left:20px;}
        body {background-image:url("images/back40.gif");}
    </style>
</head>

4.3 内联样式 (Inline style)

使用于:当样式仅需要在一个元素上应用一次时


<p style="color:sienna;margin-left:20px">这是一个段落</p>

4.4 优先级: 内联样式>内部样式表>外部样式表

代码 

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title>内部样式与外部样式(runoob.com)</title>
			<!-- 外部样式 style.css -->
		<link rel="stylesheet" type="text/css" href="https://static.runoob.com/assets/css/css-howto/style.css"/>
			<!-- 设置:h3{color:blue;} -->
		<style type="text/css">
			/* 内部样式 */
			h3{color:green;}
		</style>
	</head>
	
	
	<body>
		<h3 style="color:sienna;margin-left:20px">显示绿色,是内部样式</h3>
	</body>
</html>

 运行结果

三:常用CSS基础语法

1.尺寸

height	    设置元素的高度
line-height	设置行高
max-height	设置元素的最大高度
max-width	设置元素的最大宽度
min-height	设置元素的最小高度
min-width	设置元素的最小宽度
width	    设置元素的宽度




normal    默认。设置合理的行间距
number    设置数字,此数字会与当前的字体尺寸相乘来设置行间距
length    设置固定的行间距                                                 100px    en
%         基于当前字体尺寸的百分比行间距                                    90%

2.BackGround背景

body {background:#ffffff url('img_tree.png') no-repeat right top;} 



属性值的顺序为:
    background-color
    background-image
    background-repeat
    background-attachment
    background-position

2.1 背景颜色

body
{
	background-color:#b0c4de;
}

设置颜色方法

方法一:十六进制                 如:"#ff0000" #00ff00
方法二:RGB                      如:"rgb(255,0,0)" rgb(255,0,255)
方法三:颜色名称                 如:"red" 红色red,橙色orange,黄色yellow,绿色green
                                     蓝色blue,紫色purple,灰色gray,粉色pink 
                                     黑色black,白色white,棕色brown

2.2 背景图片 

body 
{
	background-image:url('https://static.runoob.com/images/mix/paper.gif');
}


body {background-image:url('https://static.runoob.com/images/mix/bgdesert.jpg');}


body
{
	background-image:url('https://static.runoob.com/images/mix/gradient2.png');
	background-repeat:repeat-x;         指定如何重复背景图像
        repeat:背景图像将向垂直和水平方向重复。这是默认
        repeat-x:只有水平位置会重复背景图像
        repeat-y:只有垂直位置会重复背景图像
        no-repeat:background-image 不会重复
        inherit:指定 background-repeat 属性设置应该从父元素继承

    background-position:right top;      改变图像在背景中的位置
        left top
        left center
        left bottom
        right top
        right center
        right bottom
        center top
        center center
        center bottom

    background-size:80px 60px;           改变图像大小
        background-size: 50% 50%
        background-size: 3em
        background-size: 12px
        background-size: auto

    background-origin:content-box;       指定背景图像的定位区域
        padding-box:背景图像填充框的相对位置
        border-box:背景图像边界框的相对位置
        content-box:背景图像的相对位置的内容框

    background-clip:content-box;         指定背景图像的绘画区域
        border-box:默认值。背景绘制在边框方框内(剪切成边框方框)
        padding-box:背景绘制在衬距方框内(剪切成衬距方框)
        content-box:背景绘制在内容方框内(剪切成内容方框)

    background-attachment:fixed;          设置背景图像是否固定或者随着页面的其余部分滚动
        scroll:背景图片随着页面的滚动而滚动,这是默认的
        fixed:背景图片不会随着页面的滚动而滚动
        local:背景图片会随着元素内容的滚动而滚动

    background-image:url('paper.gif');    指定要使用的一个或多个背景图像
        url('URL'):图像的URL
        none:无图像背景会显示。这是默认
        linear-gradient():创建一个线性渐变的 "图像"(从上到下)
        radial-gradient():用径向渐变创建 "图像"。 (center to edges)
        repeating-linear-gradient():创建重复的线性渐变 "图像"
        repeating-radial-gradient():创建重复的径向渐变 "图像"
}

3.Text文本

color	                                设置文本颜色
    body {
        color:red;
    }
    h1 {
        color:#00ff00;
    }
    p {
        color:rgb(0,0,255);
    }


direction:rtl;	                        设置文本方向
    ltr:默认。文本方向从左到右
    rtl:文本方向从右到左


 h1 {letter-spacing:2px}                 设置字符间距
    px:大小单位
    normal:默认。规定字符间没有额外的空间
    length:定义字符间的固定空间(允许使用负值)


p.small {line-height:90%}                设置行高
    %:基于当前字体尺寸的百分比行间距
    length:设置固定的行间距
    number:设置数字,此数字会与当前的字体尺寸相乘来设置行间距
    normal:默认。设置合理的行间距


h1 {text-align:center}                    元素设置文本的对齐方式
    left:把文本排列到左边。默认值:由浏览器决定
    right:把文本排列到右边
    center:把文本排列到中间    
    justify:实现两端对齐文本效果
    inherit:规定应该从父元素继承 text-align 属性的值


h1 {text-decoration:overline}              设置文本修饰
    none:默认。定义标准的文本
    underline:定义文本下的一条线
    overline:定义文本上的一条线
    line-through:定义穿过文本下的一条线
    blink:定义闪烁的文本
    inherit:规定应该从父元素继承 text-decoration 属性的值


p{text-indent:50px;}                        缩进元素中文本的首行
    length:定义固定的缩进。默认值:0
    %:定义基于父元素宽度的百分比的缩进


h1{text-shadow: 2px 2px #ff0000;}            设置文本阴影
text-shadow: h-shadow v-shadow blur color;
    h-shadow:必需。水平阴影的位置。允许负值
    v-shadow:必需。垂直阴影的位置。允许负值
    blur:可选。模糊的距离
    color:可选。阴影的颜色


h1 {text-transform:uppercase;}                控制元素中的字母
    none:默认。定义带有小写字母和大写字母的标准的文本
    capitalize:文本中的每个单词以大写字母开头
    uppercase:定义仅有大写字母
    lowercase:定义无大写字母,仅有小写字母


unicode-bidi:bidi-override;                   设置或返回文本是否被重写
unicode-bidi: normal|embed|bidi-override|initial|inherit;
    normal:默认。不使用附加的嵌入层面
    embed:创建一个附加的嵌入层面
    bidi-override:创建一个附加的嵌入层面。重新排序取决于 direction 属性
    initial:设置该属性为它的默认值


vertical-align:text-top;                      设置元素的垂直对齐
    baseline:默认。元素放置在父元素的基线上
    sub:垂直对齐文本的下标
    super:垂直对齐文本的上标
    top:把元素的顶端与行中最高元素的顶端对齐
    text-top:把元素的顶端与父元素字体的顶端对齐
    middle:把此元素放置在父元素的中部
    bottom:使元素及其后代元素的底部与整行的底部对齐
    text-bottom:把元素的底端与父元素字体的底端对齐
    length:将元素升高或降低指定的高度,可以是负数
    %:使用 "line-height" 属性的百分比值来排列此元素。允许使用负值


white-space:nowrap;                            设置元素中空白的处理方式
    normal:默认。空白会被浏览器忽略
    pre:空白会被浏览器保留。其行为方式类似 HTML 中的 <pre> 标签
    nowrap:文本不会换行,文本会在在同一行上继续,直到遇到 <br> 标签为止
    pre-wrap:保留空白符序列,但是正常地进行换行
    pre-line:合并空白符序列,但是保留换行符


word-spacing:30px;                              设置字间距
    normal:默认。定义单词间的标准空间
    length:定义单词间的固定空间

4.Fonts字体

p.italic {font-style:italic}          字体样式
    normal:默认值。浏览器显示一个标准的字体样式
    italic:浏览器会显示一个斜体的字体样式
    oblique:浏览器会显示一个倾斜的字体样式


p.thick {font-weight:bold;}           字体粗细
    normal:默认值。定义标准的字符
    bold:定义粗体字符
    bolder:定义更粗的字符
    lighter:定义更细的字符
    100~900:定义由细到粗的字符。400 等同于 normal,而 700 等同于 bold


h1 {font-size:250%}                   字体大小
    smaller:把 font-size 设置为比父元素更小的尺寸
    larger:把 font-size 设置为比父元素更大的尺寸
    length:把 font-size 设置为一个固定的值            px  em
    %:把 font-size 设置为基于父元素的一个百分比值
    small     x-small    xx-small
    medium    x-large    xx-large


p.small {line-height:90%}             字体高度
    normal:默认。设置合理的行间距
    number:设置数字,此数字会与当前的字体尺寸相乘来设置行间距
    length:设置固定的行间距
    %:基于当前字体尺寸的百分比行间距

5.Link链接

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8"> 
		<title>link链接</title> 
		<style>
			a:link {color:#000000;}      /* 未访问链接*/
			a:visited {color:#00FF00;}   /* 已访问链接 */
			a:hover {color:#FF00FF;}  	 /* 鼠标移动到链接上 */
			a:active {color:#0000FF;}    /* 鼠标点击时 */
		</style>
	</head>
	
	<body>
		<p><b><a href="https://www.baidu.com" target="_blank">这是一个链接</a></b></p>
		<p><b>注意:</b> a:hover 必须在 a:link 和 a:visited 之后,需要严格按顺序才能看到效果。</p>
		<p><b>注意:</b> a:active 必须在 a:hover 之后。</p>
	</body>
</html>

6.列表(有序 无序)

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8"> 
		<title>菜鸟教程(runoob.com)</title> 
		<style>
			ul {list-style-position: inside;}
				//inside:列表项目标记放置在文本以内,且环绕文本根据标记对齐
				//outside:默认值。保持标记位于文本的左侧。列表项目标记放置在文本以外,且环绕文本不根据标记对齐
			ul.a {list-style-type:circle;}
			ul.b {list-style-type:square;}
			ul.c{list-style-image:url('sqpurple.gif');}
			ul.d{list-style:square url("sqpurple.gif");}
			ul.e {
			  list-style-type: none;
			  margin: 0;
			  padding: 0;
			}
			ol.c {list-style-type:upper-roman;}
			ol.d {list-style-type:lower-alpha;}
		</style>
	</head>

	<body>
		<p>无序列表实例:</p>

		<ul class="a">
		  <li>Coffee</li>
		  <li>Tea</li>
		  <li>Coca Cola</li>
		</ul>

		<ul class="b">
		  <li>Coffee</li>
		  <li>Tea</li>
		  <li>Coca Cola</li>
		</ul>
		
		<ul class="c">
		  <li>Coffee</li>
		  <li>Tea</li>
		  <li>Coca Cola</li>
		</ul>
		
		<ul class="d">
		  <li>Coffee</li>
		  <li>Tea</li>
		  <li>Coca Cola</li>
		</ul>
		
		<ul class="e">
		  <li>Coffee</li>
		  <li>Tea</li>
		  <li>Coca Cola</li>
		</ul>
		
		<p>有序列表实例:</p>
		<ol class="c">
		  <li>Coffee</li>
		  <li>Tea</li>
		  <li>Coca Cola</li>
		</ol>

		<ol class="d">
		  <li>Coffee</li>
		  <li>Tea</li>
		  <li>Coca Cola</li>
		</ol>
	</body>
</html>

7.表格Table

表格边框
    table, th, td
    {
        border: 1px solid black;
    }


折叠边框
    table
    {
        border-collapse:collapse;
    }


表格宽度和高度
    table 
    {
        width:100%;
    }
    th
    {
        height:50px;
    }


表格文字对齐
    td
    {
        text-align:right;
        //vertical-align:bottom;
    }


表格填充
    td
    {
        padding:15px;
    }


表格颜色
    th
    {
        background-color:green;
        color:white;
    }

例子

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8"> 
		<title>表格Table(runoob.com)</title>
		<style>
			table, td, th
			{
				border:1px solid green;
			}
			th
			{
				background-color:green;
				color:white;
			}
		</style>
	</head>

	<body>
		<table>
			<tr>
				<th>Firstname</th>
				<th>Lastname</th>
				<th>Savings</th>
			</tr>
			<tr>
				<td>Peter</td>
				<td>Griffin</td>
				<td>$100</td>
			</tr>
			<tr>
				<td>Lois</td>
				<td>Griffin</td>
				<td>$150</td>
			</tr>
			<tr>
				<td>Joe</td>
				<td>Swanson</td>
				<td>$300</td>
			</tr>
			<tr>
				<td>Cleveland</td>
				<td>Brown</td>
				<td>$250</td>
			</tr>
		</table>
	</body>
</html>

8.盒子Div

Margin(外边距) - 清除边框外的区域,外边距是透明的

Border(边框) - 围绕在内边距和内容外的边框

Padding(内边距) - 清除内容周围的区域,内边距是透明的

Content(内容) - 盒子的内容,显示文本和图像

 

<!DOCTYPE html>
<html>
	<head>
	<meta charset="utf-8"> 
	<title>盒子div(runoob.com)</title>
		<style>
			div {
				background-color: lightgrey;
				width: 300px;
				border: 25px solid green;
				padding: 25px;
				margin: 25px;
			}
		</style>	
	</head>
	
	<body>
		<div>这里是盒子内的实际内容。有 25px 内间距,25px 外间距、25px 绿色边框。</div>
	</body>
</html>

8.1 Border边框

border:5px solid red;

边框宽度 border-width 

p.one
{
    border-style:solid;
    border-width:5px;
}
p.two
{
    border-style:solid;
    border-width:medium;
}

边框-单独设置各边

p
{
    border-top-style:dotted;
    border-right-style:solid;
    border-bottom-style:dotted;
    border-left-style:solid;
}

边框颜色 border-color

p.one
{
    border-style:solid;
    border-color:red;
}
p.two
{
    border-style:solid;
    border-color:#98bf21;
}

8.2 Outline轮廓

设置所有的轮廓属性 

p {
    outline:#00FF00 dotted thick;
}

设置轮廓的颜色 

p {
	outline-style:dotted;
	outline-color:#00ff00;
	}

设置轮廓的样式

p {
	outline-style:dotted;
	}

设置轮廓的宽度

p {
    outline-style:dotted;
    outline-width:5px;
}

8.3 Margin外边框

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



margin:25px 50px 75px 100px;
    上边距为25px
    右边距为50px
    下边距为75px
    左边距为100px
margin:25px 50px 75px;
    上边距为25px
    左右边距为50px
    下边距为75px
margin:25px 50px;
    上下边距为25px
    左右边距为50px
margin:25px;
    所有的4个边距都是25px

8.4 Padding内边距填充

padding-top:25px;
padding-bottom:25px;
padding-right:50px;
padding-left:50px;


padding:25px 50px 75px 100px;
    上填充为25px
    右填充为50px
    下填充为75px
    左填充为100px
padding:25px 50px 75px;
    上填充为25px
    左右填充为50px
    下填充为75px
padding:25px 50px;
    上下填充为25px
    左右填充为50px
padding:25px;
    所有的填充都是25px

9.块与内联元素

块元素:是一个元素,占用了全部宽度,在前后都是换行符
    <h1>
    <p>
    <div>


内联元素:只需要必要的宽度,不强制换行
    <span>
    <a>
改内联元素为块元素  :li{display:inline;}


把span元素作为块元素:span{display:block;}

10.显示隐藏

h1.hidden {visibility:hidden;}        隐藏的元素仍需占用与未隐藏之前一样的空间


h1.hidden {display:none;}             隐藏的元素不会占用任何空间

11.位置相关

11.1 Position定位

静态定位:position: static;
    HTML 元素的默认值,即没有定位,遵循正常的文档流对象
    静态定位的元素不会受到 top, bottom, left, right影响


固定定位:position:fixed;
    元素的位置相对于浏览器窗口是固定位置
    即使窗口是滚动的它也不会移动


相对定位:position:relative    left:-20px;
    相对定位元素的定位是相对其正常位置


绝对定位:position:absolute;    left:100px;    top:150px;
    绝对定位的元素的位置相对于最近的已定位父元素,如果元素没有已定位的父元素,那么它的位置相对于<html>


粘性定位:  position: -webkit-sticky;    position: sticky;    top: 0;
    基于用户的滚动位置来定位


重叠:z-index:-1;
    如果两个定位元素重叠,没有指定z - index,最后定位在HTML代码中的元素将被显示在最前面

11.2 Overflow内容溢出显示方式

overflow: visible;


visible	    默认值。内容不会被修剪,会呈现在元素框之外
hidden	    内容会被修剪,并且其余内容是不可见的
scroll	    内容会被修剪,但是浏览器会显示滚动条以便查看其余的内容
auto	    如果内容被修剪,则浏览器会显示滚动条以便查看其余的内容
inherit	    规定应该从父元素继承 overflow 属性的值

11.3 Float浮动

会使元素向左或向右移动,其周围的元素也会重新排列

往往是用于图像,但它在布局时一样非常有用


float:right;
float:left;
clear:both;        //清除浮动

11.4 对齐方式

文本居中对齐                         text-align: center;


元素居中对齐,图片居中对齐            margin: auto;


左右对齐 - 使用定位方式               position: absolute;
左右对齐                              float: right;


垂直居中对齐                          padding: 70px 0;
垂直居中                              line-height: 200px;
垂直居中                              transform: translate(-50%, -50%);

12.导航栏

导航栏=链接列表

<ul>
  <li><a href="#home">主页</a></li>
  <li><a href="#news">新闻</a></li>
  <li><a href="#contact">联系</a></li>
  <li><a href="#about">关于</a></li>
</ul>
删除边距和填充
    ul {
        list-style-type: none;
        margin: 0;
        padding: 0;
    }

垂直导航栏

a
{
    display:block;
    width:60px;
}

 横向导航栏

li
{
    display:inline;
}

默认激活/当前导航条active

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title>激活/当前导航条(runoob.com)</title>
		<style>
			ul {
				list-style-type: none;
				margin: 0;
				padding: 0;
				width: 200px;
				background-color: #f1f1f1;
			}

			li a {
				display: block;
				color: #000;
				padding: 8px 16px;
				text-decoration: none;
			}

			li a.active {
				background-color: #4CAF50;
				color: white;
			}

			li a:hover:not(.active) {
				background-color: #555;
				color: white;
			}
		</style>	
	</head>
	
	<body>
		<h2>垂直导航条</h2>
		<p>在点击了选项后,我们可以添加 "active" 类来标准哪个选项被选中。</p>

		<ul>
		  <li><a class="active" href="#home">主页</a></li>
		  <li><a href="#news">新闻</a></li>
		  <li><a href="#contact">联系</a></li>
		  <li><a href="#about">关于</a></li>
		</ul>
	</body>
</html>

全屏高度的固定导航条

ul {
    list-style-type: none;
    margin: 0;
    padding: 0;
    width: 25%;
    background-color: #f1f1f1;
    height: 100%; /* 全屏高度 */
    position: fixed; 
    overflow: auto; /* 如果导航栏选项多,允许滚动 */
}

浮动链接宽度相等

li
{
    float:left;
}
a
{
    display:block;
    width:60px;
}

链接右对齐

<ul>
  <li><a href="#home">主页</a></li>
  <li><a href="#news">新闻</a></li>
  <li><a href="#contact">联系</a></li>
  <li style="float:right"><a class="active" href="#about">关于</a></li>
</ul>

添加分割线

/* 除了最后一个选项(last-child) 其他的都添加分割线 */

li {
    border-right: 1px solid #bbb;
}
 
li:last-child {
    border-right: none;
}

固定导航条

ul {
    position: fixed;
    top: 0;
    width: 100%;
}

13.下拉菜单

<!DOCTYPE html>
<html>
	<head>
		<title>下拉菜单</title>
		<meta charset="utf-8">
		<style>
			/* 下拉按钮样式 */
			.dropbtn {
				background-color: #4CAF50;
				color: white;
				padding: 16px;
				font-size: 16px;
				border: none;
				cursor: pointer;
			}
			/* 容器 <div> - 需要定位下拉内容 */
			.dropdown {
				position: relative;
				display: inline-block;
			}
			/* 下拉内容 (默认隐藏) */
			.dropdown-content {
				display: none;
				position: absolute;
				background-color: #f9f9f9;
				min-width: 160px;
				box-shadow: 0px 8px 16px 0px rgba(0,0,0,0.2);
			}
			/* 下拉菜单的链接 */
			.dropdown-content a {
				color: black;
				padding: 12px 16px;
				text-decoration: none;
				display: block;
			}
			/* 鼠标移上去后修改下拉菜单链接颜色 */
			.dropdown-content a:hover {background-color: #f1f1f1}
			/* 在鼠标移上去后显示下拉菜单 */
			.dropdown:hover .dropdown-content {
				display: block;
			}
			/* 当下拉内容显示后修改下拉按钮的背景颜色 */
			.dropdown:hover .dropbtn {
				background-color: #3e8e41;
			}
		</style>
	</head>

	<body>
		<h2>下拉菜单</h2>
		<p>鼠标移动到按钮上打开下拉菜单。</p>

		<div class="dropdown">
		  <button class="dropbtn">下拉菜单</button>
		  <div class="dropdown-content">
			<a href="http://www.baidu.com">计算机应用1班</a>
			<a href="http://www.baidu.com">计算机应用2班</a>
			<a href="http://www.baidu.com">计算机应用3班</a>
		  </div>
		</div>
	</body>
</html>

运行效果

 

14.表单Input

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8"> 
		<title>表单input</title> 
	</head>
	
	<style>
		input[type=text], select {
		  width: 100%;
		  padding: 12px 20px;
		  margin: 8px 0;
		  display: inline-block;
		  border: 1px solid #ccc;
		  border-radius: 4px;
		  box-sizing: border-box;
		}

		input[type=submit] {
		  width: 100%;
		  background-color: #4CAF50;
		  color: white;
		  padding: 14px 20px;
		  margin: 8px 0;
		  border: none;
		  border-radius: 4px;
		  cursor: pointer;
		}

		input[type=submit]:hover {
		  background-color: #45a049;
		}

		div {
		  border-radius: 5px;
		  background-color: #f2f2f2;
		  padding: 20px;
		}
	</style>

	<body>
		<h3>使用 CSS 来渲染 HTML 的表单元素</h3>

		<div>
		  <form>
			<label for="fname">姓</label>
			<input type="text" id="fname" name="firstname" placeholder="Your name..">

			<label for="lname">名</label>
			<input type="text" id="lname" name="lastname" placeholder="Your last name..">

			<label for="country">省份</label>	
			<select id="country" name="country">
			  <option value="australia">成都</option>
			  <option value="canada">绵阳</option>
			  <option value="usa">都江堰</option>
			</select>

			<input type="submit" value="按钮">
		  </form>
		</div>
	</body>
</html>

运行效果

15.视频video

<!DOCTYPE html>
<html>
<head>
	<meta name="viewport" content="width=device-width, initial-scale=1.0">
	<meta charset="utf-8"> 
	<title>视频(runoob.com)</title> 
	<style>
		video {
			max-width: 100%;
			height: auto;
		}
	</style>
	</head>
	
	<body>
		<video width="400" controls>
		    <source src="G:/Game/test.mp4" type="video/mp4">
		  <source src="G:/Game/test.mp4" type="video/ogg">
		  Your browser does not support HTML5 video.
		</video>
	</body>
</html>

 运行效果

16.权重!important(初学了解)

与优先级无关,但它与最终的结果直接相关,使用一个 !important 规则时(权重最大),此声明将覆盖任何其他样式

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title>权重!important(</title>
		<style>
			#myid {
			  background-color: blue;
			}

			.myclass {
			  background-color: gray;
			}

			p {
			  background-color: red !important;
			}
		</style>
	</head>
	
	<body>
	<p>都会显示红色,因为 !important 作用,你可以删除该规则来看看效果。</p>
	<p class="myclass">都会显示红色,因为 !important 作用,你可以删除该规则来看看效果。</p>
	<p id="myid">都会显示红色,因为 !important 作用,你可以删除该规则来看看效果。</p>
	</body>
</html>

运行效果

 17.图片廊(初学了解)

别看着复杂其实就是相互嵌套,设置不同的样式 

<!DOCTYPE html>
<html>
<head>
	<meta charset="utf-8"> 
	<title>图片廊</title>  
	<style>
		div.img {
			margin: 5px;
			border: 1px solid #ccc;
			float: left;
			width: 180px;
		}

		div.img:hover {
			border: 1px solid #777;
		}

		div.img img {
			width: 100%;
			height: auto;
		}

		div.desc {
			padding: 15px;
			text-align: center;
		}
	</style>
	</head>

	<body>
		<div class="responsive">
		  <div class="img">
			<a target="_blank" href="http://static.runoob.com/images/demo/demo1.jpg">
			  <img src="http://static.runoob.com/images/demo/demo1.jpg" alt="图片文本描述" width="300" height="200">
			</a>
			<div class="desc">这就是爱情</div>
		  </div>
		</div>

		<div class="responsive">
		  <div class="img">
			<a target="_blank" href="http://static.runoob.com/images/demo/demo2.jpg">
			  <img src="http://static.runoob.com/images/demo/demo2.jpg" alt="图片文本描述" width="300" height="200">
			</a>
			<div class="desc">诗和远方</div>
		  </div>
		</div>

		<div class="responsive">
		  <div class="img">
			<a target="_blank" href="http://static.runoob.com/images/demo/demo3.jpg">
			  <img src="http://static.runoob.com/images/demo/demo3.jpg" alt="图片文本描述" width="300" height="200">
			</a>
			<div class="desc">彼岸</div>
		  </div>
		</div>

		<div class="responsive">
		  <div class="img">
			<a target="_blank" href="http://static.runoob.com/images/demo/demo4.jpg">
			  <img src="http://static.runoob.com/images/demo/demo4.jpg" alt="图片文本描述" width="300" height="200">
			</a>
			<div class="desc">初见仙门</div>
		  </div>
		</div>
	</body>
</html>

运行效果

 

透明/不透明

//透明
img
{
  opacity:0.4;
  filter:alpha(opacity=40); /*  IE8 及其更早版本 */
}


//悬停
img:hover
{
  opacity:1.0;
  filter:alpha(opacity=100); /* IE8 及其更早版本 */
}

18.计数器(初学了解)

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title>计数器(runoob.com)</title>
		<style>
			body {
			  counter-reset: section;
			}

			h2::before {
			  counter-increment: section;
			  content: "班级 " counter(section) ": ";
			}
		</style>
	</head>
	
	<body>
		<h1>班级顺序:</h1>
		<h2>计算机应用1班</h2>
		<h2>计算机应用2班</h2>
		<h2>计算机应用3班</h2>
	</body>
</html>

运行效果

四:后期学习建议

HTML——>HTML5——>CSS——>CSS3——>JS.........

前端学习路线方向点我查看

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1196263.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

说说你对React Router的理解?常用的Router组件有哪些?

一、是什么 react-router等前端路由的原理大致相同&#xff0c;可以实现无刷新的条件下切换显示不同的页面 路由的本质就是页面的URL发生改变时&#xff0c;页面的显示结果可以根据URL的变化而变化&#xff0c;但是页面不会刷新 因此&#xff0c;可以通过前端路由可以实现单…

Git 进阶使用

一. Git图形化操作 1.1.什么是图形化管理工具 图形化管理工具是一种通过可视化界面来操作计算机系统或应用程序的软件工具。在软件开发中&#xff0c;它通常用于管理和操作版本控制系统&#xff08;如Git、SVN等&#xff09;以及代码开发环境&#xff08;如IDE&#xff09;。与…

Leetcode刷题详解——单词搜索

1. 题目链接&#xff1a;79. 单词搜索 2. 题目描述&#xff1a; 给定一个 m x n 二维字符网格 board 和一个字符串单词 word 。如果 word 存在于网格中&#xff0c;返回 true &#xff1b;否则&#xff0c;返回 false 。 单词必须按照字母顺序&#xff0c;通过相邻的单元格内的…

python 对全局变量的修改,需要使用global关键字

is_debug Falsedef get_is_debug():return is_debugdef set_is_debug(dbg):global is_debugis_debug dbg代码review的时候有个同事&#xff08;我们主要都是开发c代码的&#xff0c;python也会写&#xff0c;但是用的少&#xff09;说&#xff0c;set_is_debug函数中 is_debu…

自动驾驶算法(十):多项式轨迹与Minimun Snap闭式求解原理及代码讲解

目录 1 多项式轨迹与Minimun Snap闭式求解原理 2 代码解析 1 多项式轨迹与Minimun Snap闭式求解原理 我们上次说的Minimun Snap&#xff0c;其实我们就在求一个二次函数的最优解&#xff1a; 也就是优化函数在约束下的最小值。 但这是一个渐进最优解而不是解析最优解&#xf…

LeetCode16的最接近的三数之和

目录 优化解法暴力搜索 优化解法 看了题解之后的根据题解的意思编写的优化解法,感觉还行,代码算是比较简短了,没有复杂的逻辑,就是写的时候总是只记得记录那个sum,忘记要记录最小的差值,更新min_minus. class Solution {public int threeSumClosest(int[] nums, int target) {…

ros1 基础学习08- 实现Server端自定义四 Topic模式控制海龟运动

一、服务模型 Server端本身是进行模拟海龟运动的命令端&#xff0c;它的实现是通过给海龟发送速度&#xff08;Twist&#xff09;的指令&#xff0c;来控制海龟运动&#xff08;本身通过Topic实现&#xff09;。 Client端相当于海龟运动的开关&#xff0c;其发布Request来控制…

PACD管理循环

目录 一、何谓管理&#xff1f; 二、PDCA构成 三、解读PDCA 四、总结 一、何谓管理&#xff1f; 1、所谓管理&#xff1a;是指利用拥有的资源&#xff0c;设定计划&#xff0c;并为达到此计划之一切活动的全体。 2、管理是由维持(SDCA)及改善(PDCA)这两个轮子构成。维持是…

数据分析实战 | 泊松回归——航班数据分析

目录 一、数据及分析对象 二、目的及分析任务 三、方法及工具 四、数据读入 五、数据理解 六、数据准备 七、模型训练 八、模型评价 一、数据及分析对象 CSV文件&#xff1a;o-ring-erosion-only.csv 数据集链接&#xff1a;https://download.csdn.net/download/m0_7…

什么是证书管理

在自带设备和物联网文化的推动下&#xff0c;数字化使连接到互联网的设备数量空前加速。在企业网络环境中&#xff0c;每个在线运行的设备都需要一个数字证书来证明其合法性和安全运行。这些数字证书&#xff08;通常称为 X.509 证书&#xff09;要么来自称为证书颁发机构 &…

《013.Springboot+vue之旅游信息推荐系统》【前后端分离有开发文档】

《013.Springbootvue之旅游信息推荐系统》【前后端分离&有开发文档】 项目简介 [1]本系统涉及到的技术主要如下&#xff1a; 推荐环境配置&#xff1a;idea jdk1.8 maven MySQL 前后端分离; 后台&#xff1a;SpringBootMybatisMySQL; 前台&#xff1a;Vue; [2]功能模块展…

ScrollView 与 SliverPadding 的关系

基本页面布局 Scaffold 中有个 ListView&#xff0c;ListView 中有 100 个高 50 的 Container 用作辅助观看&#xff0c;ListView 中第三个元素是一个 GridView&#xff0c;GridView 的滑动效果被禁止。 class GiveView extends GetView<GiveController> {const GiveVi…

振南技术干货集:研发版本乱到“妈不认”? Git!(2)

注解目录 1、关于 Git 1.1Git 今生 (Git 和 Linux 的生父都是 Linus&#xff0c;振南给你讲讲当初关于 Git 的爱恨情愁&#xff0c;其背后其实是开源与闭源两左阵营的明争暗斗。) 1.2Git的爆发 (Git 超越时代的分布式思想。振南再给你讲讲旧金山三个年轻人创办 GitHub&…

开源绘画krita中的笔刷压感开启技巧

一、问题描述 之前用过高漫的绘图板&#xff0c;在krita中没有效果&#xff0c; 原来是因为压感没有开启。方法如下。 二、解决方法 如下图点击笔刷设置按钮&#xff0c;打开 笔刷编辑器&#xff0c;之后如图顺序&#xff0c;从左栏点击笔刷控制属性“大小”&#xff0c;之…

【MySQL基本功系列】第二篇 InnoDB存储引擎的架构设计

通过上一篇文章&#xff0c;我们简要了解了MySQL的运行逻辑&#xff0c;从用户请求到最终将数据写入磁盘的整个过程。当数据写入磁盘时&#xff0c;存储引擎扮演着关键的角色&#xff0c;它负责实际的数据存储和检索。在MySQL中&#xff0c;有多个存储引擎可供选择&#xff0c;…

51单片机PCF8591数字电压表LCD1602液晶显示设计( proteus仿真+程序+设计报告+讲解视频)

51单片机PCF8591数字电压表LCD1602液晶设计 ( proteus仿真程序设计报告讲解视频&#xff09; 仿真图proteus7.8及以上 程序编译器&#xff1a;keil 4/keil 5 编程语言&#xff1a;C语言 设计编号&#xff1a;S0060 51单片机PCF8591数字电压表LCD1602液晶设计 1.主要功能&a…

Python高级语法----Python装饰器的艺术

文章目录 装饰器基础示例代码:执行结果:参数化装饰器示例代码:执行结果:类装饰器示例代码:执行结果:装饰器的堆栈示例代码:执行结果:在Python中,装饰器是一种非常强大的特性,允许开发人员以一种干净、可读性强的方式修改或增强函数和方法。以下是一个关于Python装饰器…

如何使用安卓手机数据恢复软件从安卓手机恢复数据

在 Android 上丢失数据并不是世界末日。拿起您的设备&#xff0c;利用最好的 Android 数据恢复软件来恢复手机内存或 SD 卡中的文件、通话记录、消息、联系人、照片、视频等。 在使用 Android 手机的过程中&#xff0c;您会体会到数字存储的便利性&#xff0c;它可以保存大量数…

elemenui的Upload上传整合成数组对象

1. 普通直接上传 <el-upload action"" :before-upload"doBeforeUpload"><el-button type"success" size"mini">导入</el-button></el-upload> methods:{doBeforeUpload(file) {let reader new FileReader(…

简单得令人尴尬的FSQ:“四舍五入”超越了VQ-VAE

©PaperWeekly 原创 作者 | 苏剑林 单位 | 月之暗面 研究方向 | NLP、神经网络 正如 “XXX is all you need” 一样&#xff0c;有不少论文都以“简单得令人尴尬”命名&#xff08;An Embarrassingly Simple XXX&#xff09;&#xff0c;但在笔者看来&#xff0c;这些论文…