前端开发应该知道的几个CSS网页表单布局技巧

html-css022

前端开发应该知道的几个CSS网页表单布局技巧,第1张

1、绝对定位

在绝大过程中,想确定一个元素在网站当中的固定位置,绝对定位是实现这个方式的解决办法。在网页当中,绝对定位可精确的控制元素在网页当中的位置,我们可使用顶部、底部、左侧和右侧,附上一个像素值来控制元素所在的位置。

position:absolutetop:50pxright:50px

上面的CSS设置一个元素的位置从浏览器的顶部和右边保持50px。你也可以在div内使用绝对定位。

2、覆盖所有样式

写CSS的时候都应该知道,当你想给一个元素添加一个新的CSS样式,但这个样式之前已经被定义过了。此时我们可以采用!important来定义。

例如,如果我想在我的网站的特定部分的H3标题是红色而不是黄色,可以使用下面的CSS:

.section h3 {color:red !important}

3、居中

居中分很多情况,一般会分成文本居中和DIV的内容居中。

文本居中

文本居中使用text-align:center。如果想让文本在左右两侧,可以使用左侧或右侧。

DIV内容

DIV内容居中跟文本居中不一样。CSS可以这样定义:

#div1 { display: blockmargin: autowidth: anything under 100% }

把宽度设置为“100%以下”的原因是因为如果它是100%宽度,那么如果是全宽度,并且不需要居中。最好有一个固定的宽度,如60%或550像素等。

4、垂直对齐(对于一行文本)

要使菜单的高度和文本的行高一致,可以这么设置:

.nav li{line-height:50pxheight:50px}

5、悬停效果

这适用于按钮,文本链接,网站的部分,图标等等。如果你想做一个悬停效果,可以试试:

.entry h2{font-size:36pxcolor:#000font-weight:800} .entry h2:hover{color:#ffeb3b}

这个功能可以让你的h2标签的颜色从黑色变成黄色。

6、悬停效果过渡

对于悬停效果,如使用菜单或网站上的图像,我们肯定不希望颜色快速贴近结果,所以我们可以通过使用时间变化来达到过渡的效果。

.entry h2:hover{color:#ffeb3btransition: all 0.5s ease}

这就使得样式上的改变,可以是从黑色变黄色的过渡时间是0.5秒,而不是立即变成黄色。这使得悬停效果更加和谐而不会显得太突兀。

7、a标签的状态

我们在遇到a标签的时候,一定要给a标签做样式定义,否则特别容易造成用户在使用上的困惑。通过样式可以让用户知道这个链接是否被点击过,更利于用户体验。

a:link {color: blue} a:visited {color: red}

8、轻松调整图像大小以适应

说到这个样式,我之前不知道可以通过以下方式达到图片的自适应效果。作为一个新手,我相信这个效果肯定有很多人都想做,当然,我提供的方法也只是其中的一种:

img {max-width:100%height:auto}

这个样式意味着最大的图像可能是100%,并根据图像宽度自动计算高度。在某些情况下,您可能还必须指定宽度为100%。

9、父级元素和子元素

如果ni不希望选择任意的后代元素,而是希望缩小范围,只选择某个元素的子元素,请使用子元素选择器:

h1 >strong {color:red}

特殊情况下你可能会想定义第N个子元素的样式,这样就可以用到下面这个样式:li:nth-child(n)

具体的使用方法可以去w3school上看。

10、将CSS应用于多个类或选择器

如果你想要在所有图片,博客部分和侧边栏上添加相同的边框。你不必写出相同的CSS样式重复3次。只需列出这些项目,用逗号分隔:

.blog,img,.sidebar {border: 1px solid #000}

工具/材料

notepad++

浏览器

打开Notepad++,先输入个页面框架

<!DOCTYPE html>

<html xmlns="http://www.w3.org/1999/xhtml">

<hade>

</hade>

<body>

</body>

框架好了,那么就该定义页面的title,关键词keyword,和描述description

<meta charset="UTF-8" content="text/html" http-equiv="content-type">

<title>纯css二级导航下拉菜单</title>

<meta name="keyword" content="搜狗略懂">

<meta name="description" content="描述">

这些内容只能在<head></head>中完成。

定义页面使用的css样式,也是需要在<head>里定义的。

<style type="text/css">

* {

margin:0

padding:0

}

.jiao ul li a:hover{

color:#red

}

ul, li {

list-style:none

}

a {

text-decoration:none

}

.jiao {

border:5px solid #pink

border-right:none

overflow:hidden

float:left

margin:200px 0 0 600px

}

.jiao ul li ul li a {

border-right:solid

border-top:2px dotted #666

background:#black

}

.jiao>ul>li { float:left}

.jiao ul li a { width:150pxheight:80pxtext-align:centerline-height:100pxdisplay:blockborder-right:5px solid #redbackground:#redcolor:#red}

.jiao ul li ul { position:absolutedisplay:none}

.jiao ul li:hover ul{ display:block}

.jiao>ul>li>ul>li { float:none}

<!--nav>ul只选择nav下一级里面的ul元素

nav ul选择nav内所包含的所有ul元素

nav>ul比nav ul限定更严格,必须后面的元素只比前面的低一个级别。

这里根据你的需求来自己定义。

-->

</style>

添加一个DIV标签,在页面中划分出一个块来,用来显示。

div中所用的样式为刚才咱们声明的样式“jiao”这个盒子来描述

然后使用无序标签<ul>+样式<li>来实现模块。

<div class="jiao">

<ul>

<li><a href="#">搜狗略懂</a>

<ul>

<li><a href="#">搜狗问问</a></li>

<li><a href="#">搜狗输入法</a></li>

<li><a href="#">搜狗浏览器</a></li>

<li><a href="#">搜狐</a></li>

</ul>

</div>

放上全部的代码吧,可以参考一下啊,

<!DOCTYPE html >

<html xmlns="http://www.w3.org/1999/xhtml">//允许你通过一个网址来识别你的标记

<head>

<meta http-equiv="Content-Type" content="text/htmlcharset=utf-8" />

<meta name="keyword" content="利用css实现下拉菜单">

<meta name="description" content="搜狗略懂、css分享">

<title>css实现下拉导航栏菜单</title>

<style type="text/css">

* {

margin:0

padding:0

}

.jiao ul li a:hover{

color:#red

}

ul, li {

list-style:none

}

a {

text-decoration:none

}

.jiao {

border:5px solid #pink

border-right:none

overflow:hidden

float:left

margin:200px 0 0 600px

}

.jiao ul li ul li a {

border-right:solid

border-top:2px dotted #666

background:#black

}

.jiao>ul>li { float:left}

.jiao ul li a { width:150pxheight:80pxtext-align:centerline-height:100pxdisplay:blockborder-right:5px solid #redbackground:#redcolor:#red}

.jiao ul li ul { position:absolutedisplay:none}

.jiao ul li:hover ul{ display:block}

.jiao>ul>li>ul>li { float:none}

<!--nav>ul只选择nav下一级里面的ul元素

nav ul选择nav内所包含的所有ul元素

nav>ul比nav ul限定更严格,必须后面的元素只比前面的低一个级别。

这里根据你的需求来自己定义。

-->

</style>

</head>

<body>

<div class="jiao">

<ul>

<li><a href="#">搜狗略懂</a>

<ul>

<li><a href="#">搜狗问问</a></li>

<li><a href="#">搜狗输入法</a></li>

<li><a href="#">搜狗浏览器</a></li>

<li><a href="#">搜狐</a></li>

</ul>

</li>

</ul>

</div>

</body>

</html>

如果要添加更多的菜单,只需要后边继续添加<ul>/<li>即可

特别提示

写代码过程中一定要记得换行,开头留空,否则过后找东西,连你自己都不知道写的是什么。何谈从哪里找起?