利用CSS堆定位元素位置的方式有哪些呢?

html-css014

利用CSS堆定位元素位置的方式有哪些呢?,第1张

css常用的定位方式有五种:

1、static定位(普通流定位) -------------- 默认定位

2、float定位(浮动定位) 例:float:left

有两个取值:left(左浮动)和right(右浮动)。浮动元素会在没有浮动元素的上方,效果上看是遮挡住了没有浮动的元素,有float样式规则的元素是脱离文档流的,它的父元素的高度并不能有它撑开。

如果父元素的宽度太窄,那么其他浮动元素会向下移动,直到有足够的空间(左图所示);如果浮动元素的高度不同,那么其他浮动元素向下移动时,就有可能会出现卡住的情况(下图所示)

注意:浮动元素的外边缘不会超过父元素的内边缘;浮动元素不会上下浮动;浮动元素不会互相重叠,会像行内块元素一样排列。

如果想要既设置浮动,又使父元素的高度被浮动元素撑开,即清除子元素浮动对父元素带来的高度的影响,有四种方法可以实现:

假设HTML代码部分为:

<div class="parent">这是父元素

<div style="float:left">这是子元素</div>

</div>

1) 为父元素设置固定高度 -------------缺点:不知道具体高度没办法设置

CSS代码部分:

.parent{

//...

height:xxx//某个固定值

}

2) 在父元素内,在浮动元素的下方多写一行代码:<div style="clear:both"></div>------------- 缺点:增加代码冗余

HTML代码部分:

<div class="parent">这是父元素

<div style="float:left">这是子元素</div>

<div style="clear:both"></div>

</div>

3) 为父元素设置css规则:overflow:hidden ------------- 缺点:有时候不希望超出部分隐藏

.parent{

// ...

overflow:hidden //某个固定值

}

4) 内容生成 ------------- 最优的方法,推荐

CSS代码部分:

.parent:after{

content:''

display:'block'

clear:both

}

3、relative定位(相对定位) position:relative

相对本元素的左上角进行定位,top,left,bottom,right都可以有值。虽然经过定位后,位置可能会移动,但是本元素并没有脱离文档流,还占有原来的页面空间。可以设置z-index。使本元素相对于文档流中的元素,或者脱离文档流但是z-index的值比本元素的值要小的元素更加靠近用户的视线。

相对定位最大的作用是为了实现某个元素相对于本元素的左上角绝对定位,本元素需要设置position为relative。

4、absolute定位(绝对定位) position:absolute

相对于祖代中有relative(相对定位)并且离本元素层级关系上是最近的元素的左上角进行定位,如果在祖代元素中没有有relative定位的,就默认相对于body进行定位。

5、fixed定位(固定定位)position:fixed

相对于窗口的位置,而且不受其他网页内元素影响,永远处于浏览器窗口的相对位置。

绝对定位是脱离文档流的,与浮动定位是一样的效果,会压在非定位元素的上方。可以设置z-index属性。

注意:当同时有浮动元素和绝对定位元素出现并且浮动元素没有设置z-index,浮动元素是压在绝对定位元素上的,即离用户的视线更近。

这是用html和css写出的页面

怎么才能达到这种效果

先看源码:

<!DOCTYPE html>

<html>

<head>

<meta charset="utf-8" />

<link rel="stylesheet" href="css/index.css" />

<title></title>

</head>

<body>

<div>

<h1>春</h1>

<p>盼望着,盼望着,东风来了,春天的脚步近了,一切都像刚睡醒的样子,欣欣然张开了眼。山朗润起来了,水涨起来了,太阳的脸红起来了。

小草偷偷地从土里钻出来,嫩嫩的,绿绿的。园子里,田野里,瞧去,一大片一大片满是的。坐着,躺着,打两个滚,踢几脚球,赛几趟跑,捉几回

迷藏。风轻悄悄的,草绵软软的。</p>

<p>桃树、杏树、梨树,你不让我,我不让你,都开满了花赶趟儿。红的像火,粉的像霞,白的像雪。花里带着甜味,闭了眼,树上仿佛已

经满是桃儿、杏儿、梨儿!花下成千成百的蜜蜂嗡嗡地闹着,大小的蝴蝶飞来飞去。野花遍地是:杂样儿,有名字的,没名字的,散在草丛里,

像眼睛,像星星,还眨呀眨的。</p>

</div>

</body>

</html>

div{

height: 600pxwidth: 416px  /*定义盒子高度和宽度*/

border: solid 1px red      /*border-width, border-style,和border-color.*/

padding: 115px 4em 0

/*为了避免背景图像重复平铺到边框区域,应禁止他平铺*/

background: url(../img/p3.jpg) no-repeat

/*设计背景图像的定位坐标点为元素边框上的左上角*/

background-origin: border-box          /*相对位置*/

background-size: cover

overflow: hidden  /*overflow属性指定如果内容溢出一个元素的框,会发生什么。*/

/*visible 默认值。内容不会被修剪,会呈现在元素框之外。

hidden           内容会被修剪,并且其余内容是不可见的。

scroll           内容会被修剪,但是浏览器会显示滚动条以便查看其余的内容。

auto           如果内容被修剪,则浏览器会显示滚动条以便查看其余的内容。

inherit 规定应该从父元素继承 overflow 属性的值。*/

}

/*定义标题*/

div h1{

font-size: 18pxfont-family: "幼圆"

text-align: center

}

/*定义文章*/

div p{

text-indent: 2em/*text-indent 属性规定文本块中首行文本的缩进*/

line-height: 2em/*行高*/

font-family: "楷体"

margin-bottom: 2em

}

后面的细节慢慢挑出来演示一下。

一般用position属性来定义位置。

relative相对位置;

absolute绝对位置;

fixed屏幕位置;

通过left、top、bottom、right设置。