Fixed Full-height Side Nav
Try to scroll this area, and see how the sidenav sticks to the page
someone like me
i am i
who are you
you are you
@author 鲁伟林
一直开发后端,现在开始全栈培养自己。
学习CSS的网址是:http://www.runoob.com/css/css-tutorial.html
gitHub地址: https://github.com/thinkingfioa/Notes/tree/master/front-developer/css
CSS规则由两个主要的部分组成:选择器 + (一条/多条)声明
CSS注释以"/*"开始,以"*/"结束
设置CSS样式,需要在元素中设置"id"和"class"选择器
CSS教程
使用id选择器: Hello World
使用class选择器: Hello PPP
容易混淆的.class1.class2与.class1 .class2的区别
插入样式表的方法有三种:
外部样式表将样式定义写到一个.css扩展名的文件。再引入到具体的html文件中。
内部样式表是使用标签
使用(style)属性,定义元素的样式,请慎用这种方法
iami
CSS背景属性用于定义HTML元素的背景。CSS属性定义背景效果:
background-color属性定义元素的背景颜色,如: body{background-color:#ffffff}
background-image属性描述了元素的背景图像,默认情况下,背景图像进行平铺重复显示
CSS教程
Hello World
默认情况下background-image属性会在页面的水平或垂直方向平铺。如下代码,只在水平方向上平铺(repeat-x)
body {
background-image.url("./images/background.jpg");
background-repeat:repeat-x;
}
background-position可以指定背景图片显示位置
body {
background-image:url("./images/background.jpg");
background-repeat: repeat-y;
background-position: top right;
}
上列介绍的多个属性,可以进行简写。浓缩成一句
body { backgroud:#ffffff url("./images/background.jpg") no-repeat right top}
颜色属性被用来设置文字的颜色。提醒: 根据W3C标准,如果定义了颜色属性,请必须定义背景色属性
CSS教程
一级标题
Hello
World
text-align属性用于定义文本对齐方式:
text-decoration属性主要用来删除链接的下划线。该属性主要用来设置或删除文本的装饰
文本转换主要用于将字句变成大写、小写和首字母大写
文本缩进属性是用来指定文本第一行的缩进。如: text-indent:50px
#shadow{
text-shadow: 2px 2px #ff0000;
font-size: 30px;
}
CSS字体属性定义字体、加粗、大小和文字样式
font-family属性设置文本字体。可以设置多种字体,防止浏览器出现不支持某种字体。常用字体
p{font-famili:"Times New Roma", Times, Arial}
字体默认大小为16px=1em。可以使用font-size属性定义文字大小
为了适应所有浏览器,设置
元素的默认字体大小的是百分比body{ font-size:100%}
h1{font-size:2.5em}
font-weight属性用来设置字体粗细,如:
使用属性font,可以简写所有的字体属性,如:p{font:italic bold 12px/30px Georgia,serif;}
链接的样式,可以定义多种不同样式,
四个链接状态如下,但是我个人觉得(解释有点问题):
CSS教程
thinking_fioa的博客地址
a:link {text-decoration:none;}
a:visited {text-decoration:none;}
a:hover {text-decoration:underline;}
a:active {text-decoration:underline;}
背景颜色属性指定链接背景色
a:link {background-color:#B2FF99;}
a:visited {background-color:#FFFF85;}
a:hover {background-color:#FF704D;}
a:active {background-color:#FF704D;}
使用CSS可以进一步定义列表样式,CSS列表属性作用如下:
list-style-type属性指定列表项标记类型
列表项可以使用图片进行标记,使用list-style-image属性指定。注意:有些浏览器对于list-style-image属性显示可能存在一点差别
ul{
list-style-image: url("some_image.jpg");
}
通过list-style属性,将所有列表属性汇总,简写成一句话
ul{
list-style: square url("some_image.jpg");
}
使用属性来定义表格边框
CSS教程
FirstName
LastName
thinking
fioa
ppp
cuter
使用border属性,可能每个元素都会有边框,会存在边框重叠。使用border-collapse折叠边框
使用width属性,如: th{ width:100%;}
使用text-align属性设置水平对齐,如: td{text-align:left;}
在表的内容与控制空格之间边框的间隙。如: td{padding: 5px;}
caption{
caption-side: bottom;
}
所有的HTML元素都可以看作盒子,在CSS中,"Box Model"用来设计和布局元素位置使用,主要包括: 外边距、边框、内边距、内容。具体说明如下:
具体参见下图:
特别提醒:当你指定一个CSS元素的宽度和高度时,你只是在设置内容区域(Content)的宽度和高度。然而整个元素的大小,还包括Margin、Border和Padding。如下代码,总长度是:300+25*2+25*2+25*2 = 450
CSS教程
这里是内容区域
CSS边框属性允许你指定一个元素边框的样式和颜色
border-style属性用来定义边框的样式。如下:
通过border-width属性定义边框指定宽度,如: p{border-width:2px;}
border-color属性定义边框的颜色,如: p { border-color:red;}
使用border属性来简写边框,如:border{2px solid red;}
轮廓(outline)位于border和margin之间的元素属性,可其中突出元素的作用。目前先暂且不补充,后续再更新
CSS Margin(外边距)属性定义元素周围的空间。margin没有背景颜色,是完全透明的
在CSS中,可以指定不同的侧面不同的边距
CSS教程
这是一个指定Margin属性的P元素
为了缩短代码,可以使用margin来缩写属性,全写的话是顺时针
CSS Padding(填充)属性定义元素边框在元素内容之间的空间
在CSS中,可以指定不同的侧面不同的填充:
为了缩短代码,可以使用padding来缩写属性。具体位置与margin一模一样。全写的话是顺时针
在CSS中可能会存在非常多的相同的样式,使用分组和嵌套来减少代码,方便维护
将多个元素用逗号(,)分割,定义相同的样式
h1,h2,p{
color:red;
}
当选择器内部样式需要定制化时,使用嵌套选择器。如下代码表示:className类下了嵌套元素p(子元素)
.className p{
color:white;
}
利用尺寸属性可以控制元素的高度和宽度。同样,也可以增加行间距
属性 | 描述 |
---|---|
height | 设置元素的高度 |
line-height | 设置行高 |
max-height | 设置元素的最大高度 |
max-width | 设置元素的最大宽度 |
min-height | 设置元素的最小高度 |
min-width | 设置元素的最小宽度 |
width | 设置元素的宽度 |
如果希望元素在对应的区域内居中,需要使用行高
p{
text-align:center;
line-height:100px;
}
display元素设置一个元素应如何显示,visibility属性指定一个元素应可见还是隐藏
CSS教程
内联元素:
thinking_fioa
块元素:
ppp
position属性指定了元素的定位类型。position属性的四个值。static和relative在文档流中,与fixed和absolute相反。
.relative_pos{
position: relative;
left:-20px;
}
fixed是特殊的absolute,即fixed总是以浏览器的可视窗口(屏幕内网页窗口)进行定位。不占据空间
CSS教程
someone like you
当一个元素A设置了position:absolute后,分为两种情况:
h2{
postion:absolute;
left:100px;
top:50px;
}
使用元素定位属性:position会导致元素重叠,可以使用属性:z-index,来规定谁置底。z-index值越大,越在顶层
CSS教程
someone like you
<\body>
Float(浮动)往往用于图像,会使元素向左或向右移动。
将多个浮动元素放在一起,如果有空间的话,它们会彼此相邻
.thumbnail{
float:left;
width:110px;
height:90px;
margin:5px;
}
图片库
试着调整窗口,看看当图片没有足够的空间会发生什么。.
第二行
水平 & 垂直居中对齐
使用margin:auto来水平居中对齐一个元素,请必须指定width属性
CSS教程
thinking_fioa
文本居中对齐使用text-algin属性,如:text-align:center;
要让图片居中对齐,可以使用margin:auto,同时并使用块元素显示,display:block
CSS教程
使用position:absolute属性定义元素位置
.right{
position:absolute;
right:0px;
width:300px;
padding:10px;
border: 3px solid green;
}
使用float属性来对齐元素。float属性通常用于图片的对齐
.right{
float:right;
width:300px;
padding:10px;
border: 3px solid green;
}
CSS中有多种方式实现垂直居中对齐。一种简单的方式就是头部和底部使用padding
.center{
padding: 40px 0;
border: 3px solid lightgrey;
}
line-height设置行高,可用来设置垂直居中
.center {
line-height: 200px;
height: 200px;
}
可以使用transform属性来设置垂直居中
组合选择器说明两个选择器具有直接的关系,CSS3中包含了四种组合方式:
后代选取器匹配指定元素的子元素,如下代码,表示指定元素
div p{
background-color:yellow;
}
子元素选择器,只能选择指定元素的直接子元素,跨级不行
div>p{
background-color: yellow;
}
如:div+p,表示的是:和
类型元素
div+p{
background-color: yellow;
}
如:div~p,表示的是:和
类型元素
div~p{
background-color: yellow;
}
CSS伪类用来添加一些选择器的特殊效果。如a:link、a:visited等。
可以使用:first-child伪类来选择元素的第一个子元素
div>p:first-child{
color:blue;
}
CSS伪元素是用来添加一些选择器的特殊效果,后续更新
熟练使用导航栏,对于所有网站都非常重要。效果
CSS教程
垂直导航条
下列代码实现的是: 左边是全屏高度的固定导航条,右边是可滚动的内容。效果
CSS教程
Fixed Full-height Side Nav
Try to scroll this area, and see how the sidenav sticks to the page
someone like me
i am i
who are you
you are you
使用float:left来实现水平导航条。效果
CSS教程
使用CSS创建一个鼠标移动上去后显示下拉菜单的效果
基本下拉菜单实现功能: 鼠标放到对应的文字上,显示菜单。主要利用代码: .myDiv:hover .invisibility{display: blcok}。效果
CSS教程
Hello 隐形者
Who are you?
Who am i?
创建下拉菜单,并允许用户选取列表中的某一项。主要代码:.menu:hover .invisibility{display: block;}。 效果
CSS教程
CSS可以实现鼠标放上去,显示提示文本,等待后续更新,目前没有用到
使用CSS创建图片廊。效果
使用CSS非常容易创建透明的图像,使用属性opacity: 0.4来实现。主要代码是:img:hover{opacity:1},效果
当网页显示时,加载过多的图像,可能会拖慢网页显示速度。利用图像拼合技术,通俗的说就是,将多个图片放在一个大图片里面,再利用图像拼合技术,局部显示图片。等待后续更新
CSS实例参考