举一个简单的ul,li的列表例子,实现如下效果:
站在用户的角度思考问题,与客户深入沟通,找到陆川网站设计与陆川网站推广的解决方案,凭借多年的经验,让设计与互联网技术结合,创造个性化、用户体验好的作品,建站类型包括:成都做网站、成都网站制作、成都外贸网站建设、企业官网、英文网站、手机端网站、网站推广、域名注册、网页空间、企业邮箱。业务覆盖陆川地区。
常规写法(使用last-child选择器):
写法2(使用not选择器):
写法2(使用+选择器):
相邻兄弟选择器(Adjacent sibling selector)可选择紧接在另一元素后的元素,且二者有相同父元素。
比如:在HTML中,
nav class="list1" style="width:150px;"
ul
liaAmmy/a/li
liaBob/a/li
liaCancy/a/li
liaOther/a
ul
liaAmmy/a/li
liaBob/a/li
liaCancy/a/li
liaTom/a/li
/ul
/li
/ul
/nav
nav class="list2"
ul
liaAmmy/a/li
liaBob/a/li
liaCancy/a/li
liaTom/a/li
/ul
/nav
nav class="multi_drop_menu"
ul
liachina/a
ul
liaAdress/a/li
liaJob/a/li
liaFamily/a/li
liaName/a
ul
liaAmmy/a/li
liaBob/a/li
liaCancy/a/li
liaTom/a/li
/ul
/li
/ul
/li
liaFrance/a/li
liaEnglish/a/li
liaAmerica/a
ul
liaAdress/a/li
liaJob/a/li
liaFamily/a/li
liaName/a
ul
liaAmmy/a/li
liaBob/a/li
liaCancy/a/li
liaTom/a/li
/ul
/li
/ul
/li
/ul
/nav
br
nav class="multi_drop_menu vertical"
ul
liachina/a/li
liaFrance/a/li
liaEnglish/a/li
liaAmerica/a
ul
liaAdress/a/li
liaJob/a/li
liaFamily/a/li
liaName/a
ul
liaAmmy/a/li
liaBob/a/li
liaCancy/a/li
liaTom/a/li
/ul
/li
/ul
/li
/ul
/nav
在CSS中,
nav{ margin:50px;}
.list1 ul{ border:1px #000 solid; padding:10px; border-radius:3px;}
.list1 li{ list-style-type:none;}
.list1 li+li a{ border-top:1px #000 solid;}
.list1 a{ display:block; text-decoration:none; font:Arial, Helvetica, sans-serif; font-weight:400; background:#999; color:#000; font-size:2em; padding:3px 10px;}
.list1 a:hover{ color:#09F;}
.list1 li ul{ opacity:0; visibility:hidden; transition:3s all;}
.list1 li:hover ul{ opacity:1; visibility:visible;}
.list2 ul{overflow:hidden;}
.list2 li{ float:left; list-style-type:none; background:#CCC;}
.list2 li+li a{ border-left:1px #000 solid;}
.list2 a{ display:block; text-decoration:none; color:#000; font-size:2em; padding:10px 30px;}
.list2 a:hover{ color:#09F;}
/*添加视觉样式*/
.multi_drop_menu{ font:2em Arial, Helvetica, sans-serif;}
.multi_drop_menu a{ display:block; color:#fff; background:#063; text-decoration:none; padding:.5em 1em; border-width:3px; border-color:transparent;}
.multi_drop_menu li:hover a{ color:#06F; background:#CCC;}
.multi_drop_menu a:active{ color:#FFF; background:#333;}
.multi_drop_menu li ul{ width:9em;}
.multi_drop_menu li li a{ border-right-style:none; border-top-style:solid; color:#333; background:#6F0;}
/*添加功能样式*/
.multi_drop_menu *{ padding:0px; margin:0px;}
.multi_drop_menu ul{ float:left;}
.multi_drop_menu li{ float:left; list-style-type:none; position:relative;}
.multi_drop_menu li a{ display:block; border-right-style:solid; background-clip:padding-box; text-decoration:none;}
.multi_drop_menu li:last-child a{ border-right-style:none;}
.multi_drop_menu li ul{ display:none; position:absolute; left:0px; top:100%; z-index:99;}
.multi_drop_menu li:hover ul{ display:block;}
.multi_drop_menu li li{ float:none;}
.multi_drop_menu li li ul{ display:none; position:absolute; left:100%; top:0px;}
.multi_drop_menu.vertical{ width:8em;}
.multi_drop_menu.vertical li a{ border-right-style:none; border-top-style:solid;}
.multi_drop_menu.vertical li li a{ border-left-style:solid;}
.multi_drop_menu.vertical ul, .multi_drop_menu.vertical li { float:none;}
.multi_drop_menu.vertical li ul{ left:100%; top:0px;}
盒子模型是CSS中一个很重要的概念,页面中的所有元素都可以看成一个盒子,并占据一定的页面空间,一个页面由很多盒子组成,盒子之间会互相影响。只有掌握盒模型以及其中每个属性的用法,才能真正控制好页面元素。
盒子模型主要定义四个区域: 内容(content)、内边距/填充(padding)、边框(border)和外边距(margin) 。
盒子的内容区域存放文本和图片等页面元素,拥有如下属性:
边框基本属性:
通过一个属性设置四个方向边框的宽度、样式、颜色
属性:border
取值:width style color;
只设置某一条边框的宽度、样式、颜色
语法:border-方向(top/right/bottom/left):width style color;
只设置边框的宽度、样式、颜色中的一种
语法:border-属性(width/style/color):取值;
只设置某一条边框的宽度、样式、颜色中的一种
语法:border-方向(top/right/bottom/left)-属性(width/style/color):取值;
属性:border-radius
作用:设置倒角位置处圆的半径,半径越大,弧度越大。
取值:
属性:border-image
语法:
border-image-source :引入背景图片
取值:
默认值:无图片
url(图片URL地址)
border-image-slice :切割引入背景图片,把边框背景切成9份
取值:
number:默认单位px
百分比:
fill:保留边框图像的中间部分
border-image-width :指定边框图片的宽度
border-image-repeat :指定边框背景图片的排列方式,可定义2个参数,即水平和垂直方向
取值:
Stretch:默认值,拉伸
Repeat:平铺
Round:取整平铺
内容区域和边框(边缘)之间的距离
语法:padding: 值;
单边设置:padding-方向(top/right/bottom/left):值;
取值:
数值px
百分比
内边距的简写方式:
padding:value;
四个方向内边距的值均为value
padding:value1 value2;
Value1为上下内边距的值,value2为左右内边距的值
padding:value1 value2 value3;
Value1为上内边距的值,value2为左右内边距的值,value3为下内边距的值
padding:value1 value2 value3 value4;
上右下左内边距的值分别为value1, value2, value3, value4
外边距指元素与元素之间的距离,即围绕在元素边框之外的空白区域,通过外边距可以为元素创建额外的“空间”。默认不能被其他元素所占据,用于拉伸两个元素间的距离。
语法:margin: 值;
单边设置:margin-方向(top/right/bottom/left):值;
取值:
重新制定元素尺寸计算模式
属性:box-sizing
取值:
属性:resize
取值:
位于元素边框之外的一条线
属性:
outline:width style color;
属性:box-shadow
语法:
box-shadow: h-shadow v-shadow blur spread color inset;
取值:由一组值构成的值列表
属性:background-color
取值:颜色值或transparent
注意:背景颜色是从边框位置处开始绘制
属性:background-image
取值:url(背景图像URL)
属性:background-repeat
取值:
属性:background-attchment
取值:
scroll:默认值,滚动
fixed:固定
属性:background-position
取值:
属性:background-size
取值:
属性:background-origin
取值:
属性:background-clip
取值:
CSS3多背景通过为每个背景属性提供多个属性值实现。
font 简写属性语法:
将所有字体属性合写为一行,其中font-family是复合属性中必不可少的属性。
可以不设置其中的某个值,如果省略值地话,就使用属性的默认值。
②文本属性:
(2)CSS3文本阴影属性:
属性:text-shadow
作用:产生阴影和模糊主体
语法:
作用:定义列表的编号样式
属性:list-style-type
作用:用于设置列表项的图像属性
语法:
图像URL地址:图像的相对路径或绝对路径
none:默认值,不指定图像
注意:图片图标与文字之间的距离在不同浏览器中是不一样的,因此,一般情况下不采用这种方式来设置列表的图片样式。
通过设置li的背景图片的方式来设置列表图片基本步骤:
设置list-style-type属性值为none
设置li标记的背景属性backgruond
作用:用于声明列表标志相对于列表项内容的位置
语法:
作用:可以同时设定列表样式类型、列表样式位置、列表样式图片等属性的值。
语法:
注意:
可以不设置其中的某个值,未设置的属性采用默认值
同时指定list-style-image和list-style-type时,list-style-image优先显示,除非list-style-image设置为none,或图片路径错误无法显示
当列表与列表项目同时使用样式时,列表项目的样式优先显示
特点:
可以设置宽度和高度
默认情况下每个块级元素独占一行
作用:
块级元素主要用于页面布局
常用块级元素:
div、p、h1~h6、ol、ul等
特点:
不可以设置宽度和高度,其宽度就是自身文字或图片的宽度
默认情况下多个行内元素会在一行内显示,遇父元素边界时会自动换行
作用:
行内元素主要用于设置文样式
常用行内元素:
a、span、em、b、i、strong、img、input等
作用:控制页面元素脱离原有文档流,实现向左或向右移动,直到该元素外边缘碰到其包含框或另一个浮动框的边缘停止,标准流中的其他盒子将顶到浮动盒子的位置。浮动的元素不占据实际空间。
属性: float
取值:
浮动元素不会相互重叠;
浮动元素不会上下浮动,如果一个浮动元素在另一个浮动元素之后显示,而且会超出容纳块,则它下降到低于先前任何浮动元素的位置。
作用:规定元素的哪一侧不允许出现其他浮动元素。
取值:
作用:控制页面元素在页面中的位置。
属性:position
取值:static/relative/absolute/fiexed
默认属性值,元素按照标准文档流进行排列,块级元素独占一行, 行内元素位于一行内显示,一行显示不下,自动换行。
特点:
相对于自身原有位置进行偏移
仍处于标准文档流中
随即拥有偏移属性和z-idex属性
偏移属性:
left:数值px;
right:数值px;
top:数值px;
bottom:数值px;
当元素相对定位后会产生Z轴上的堆叠,不设置z-index属性时,默认该元素出现在X轴和Y轴构成的平面上。
特点:
建立了以包含块为基准的定位
绝对定位的元素的位置相对于最近的已定位祖先元素(设定了绝对定位、相对定位或固定定位中的任何一种),如果元素没有已定位的祖先元素,则该元素的位置相对于浏览器窗口。
完全脱离了标准文档流
随即拥有偏移属性和z-idex属性
偏移属性:
left:数值px;
right:数值px;
top:数值px;
bottom:数值px;
绝对定位未设置偏移量的特点:
无论是否存在已经定位的祖先元素,都保持在元素的初始位置
脱离了标准文档流
设定固定定位的元素框的表现类似于将position设置为absolute,不过其包含块是浏览器窗口本身。
在计算机显示中把垂直于屏幕平面的方向称为Z方向,CSS绝对定位容器的z-index属性即对应该方向。
作用:用于控制元素的层叠次序,使得某个元素浮于其他元素之上。
语法:
auto:遵循其父元素的定位
number:整数,可负,值大者叠加在上层
注意:使用z-index属性时,要求该元素的position属性值为absolute、relative或fixed。
作用:用于定义建立布局时元素生成的显示框类型
语法:dispaly:值;
作用:用于定义建立布局时元素生成的显示框类型
语法:visibility:值;
不能设置,这个一般是将红色小圆圆截成图片作为背景图(将list-style-type:none)
css设置下拉列表(select)样式首先我们需要获取到这个元素的id或者是class,然后在通过给这个元素设置它的width和height等等一些样式,具体的看代码:
html
head
style
.div1{
width:600px;
height:200px;
font-size:13px;
}
.div select{
width:200px;
}
.div select option{
width:150px;
height:30px;
}
/head
body
div class='div1'
select
option value="volvo"Volvo/option
option value="saab"Saab/option
option value="opel"Opel/option
option value="audi"Audi/option
/select
/div
/body
/html
ulli/li/ul有序
ullo/lo/ul无序
属性:list-style
list-style-type:设置列表项标志的类型(none就是前面没有小圆点)
list-style-image:将图象设置为列表项标志。
list-style-position:设置列表中列表项标志的位置