CSS元素定位的使用方法

导语:定位的基本思想很简单,它允许你定义元素框相对于其正常位置应该出现的位置,或者相对于父元素、另一个元素甚至浏览器窗口本身的位置。以下是百分网小编为大家搜集的CSS元素定位方法,希望对你有所帮助。

1.盒模型

盒模型,就是 浏览器为页面中的每个 HTML 元素生成的矩形盒子。

这些盒子们都要按照 可见版式模型(visual formatting model)在页面上排布。可见的页面版式主要由三个属性控制: position 属性、 display 属性和 float 属性。其中,position 属性控制页面上元素间的位置关系, display 属性控制元素是堆叠、并排,还是根本不在页面上出现, float 属性提供控制的方式,以便把元素组成成多栏布局。

2015721181054015.png (550×385)

盒子属性分三组:

边框(border)。可以设置边框的宽窄、样式和颜色。

内边距(padding)。可以设置盒子内容区与边框的间距。

外边距(margin)。可以设置盒子与相邻元素的间距。

可以这么理解盒子属性:外边距是边框向 外推 其他元素,而内边距是从边框向 内推 元素的内容。

CSS 为边框、内边距和外边距分别规定了简写属性。在每个简写声明中,属性值的顺序都是上、右、下、左(顺时针旋转)。

示例:margin:5px 10px 12px 8px;

注意:4 个值之间有空格,但不能是其他分隔符(比如逗号之类的)。甚至,你都不用把 4 值

全都写出来——如果哪个值没有写,那就使用对边的值。

示例:margin:12px 10px 6px;

说明:缺少最后一个值(左边),使用对边(右边)的值(10px),即:margin:12px 10px 6px 10px。

示例:margin:12px 10px;

说明:缺少最后两个值(下边和左边),使用上边(12px)和右边(10px),即:margin:12px 10px 12px 10px;

示例:margin:12px;

说明:只写一个值,那么4个边都去这个值。即:margin:12px 12px 12px 12px;

1.1 盒子边框

边框(border)有3个相关属性:

宽度

可以使用 thin、medium 和 thick 等文本值,也可以使用

除百分比和负值之外的任何绝对值。

样式

有 none、hidden、 dotted、 dashed、 solid、 double、 groove、

ridge、 inset 和 outset 等文本值。

颜色

可以使用任意颜色值,包括 RGB、 HSL、十六进制颜色 值和颜色关键字。

1.2 盒子内边距

内边距(padding)用来设置盒子内容区与边框的间距。在没有设定内边距的情况下,内容会紧挨着边框。

1.3 盒子外边距

外边距(margin)用来设置盒子与相邻元素的间距。

推荐使用这条规则作为样式表的第一条规则:* {margin:0; padding:0;}

说明:这条规则把所有元素默认的外边距和内边距都设定为零。把这条规则放到样式表里后,所有默认的外边距和内边距都会消失。然后,你可以为那些真正需要外边距的元素再添加外边距。不同浏览器默认的内边距和外边距也不一样,特别是对表单和列表等复合元素。在这种情况下,用这条规则 中和 默认值,然后再根据需要添加,则会在各浏览器上获得一致的效果。

1.4 叠加外边距

垂直方向上的外边距会叠加,这可是你必须得知道的一件事。

In CSS, the adjoining margins of two or more boxes (which might or might not be siblings) can combine to form a single margin. Margins that combine this way are said to collapse, and the resulting combined margin is called a collapsed margin.

在CSS中,两个或多个毗邻(父子元素或兄弟元素)的普通流中的块元素垂直方向上的 margin 会发生叠加。这种方式形成的外边距即可称为外边距叠加(collapsed margin)。

1.5 外边距的单位

根据经验,为文本元素设置外边距时通常需要混合使用不同的单位。比如说,一个段落的.左、右外边距可以使用像素,以便该段文本始终与包含元素边界保持固定间距,不受字号变大或变小的影响。而对于上、下外边距,以 em 为单位则可以让段间距随字号变化而相应增大或缩小。

示例:

CSS Code复制内容到剪贴板

p {font-size:1em; margin:.75em 30px;}

2.浮动与清除

浮动和清除是用来组织页面布局的一柄利剑,这柄剑的剑刃就是 float 和 clear 属性。

2.1 浮动

浮动,可以想象把元素从常规文档流中拿出来。浮动元素脱离了常规文档流之后,原来紧跟其后的元素就会在空间允许的情况下,向上提升到与浮动元素平起平坐。

如果浮动元素后面有两个段落,而你只想让第一段与浮动元素并列(就算旁边还能放第二段,也不想让它上来),可以使用 clear 属性来 清除 第二段,然后它就会乖乖地呆在浮动元素下面了。

浮动 最常见的作用:

实现传统出版物上那种文字绕排图片的效果

让原来上下堆叠的块级元素,变成左右并列,从而实现布局中的分栏。

2.2 围住浮动元素的三种方法

注意:三种方法各有利弊,看情况使用。

方法一:为父元素添加 overflow:hidden

方法二:同时浮动元素

方法三:添加非浮动的清除元素

3.定位

CSS 布局的核心是 position 属性,对元素盒子应用这个属性,可以相对于它在常规文档流中的位置重新定位。 position 属性有 4 个值: static、 relative、 absolute、fixed,默认值为 static。

3.1 静态定位

static

在静态定位的情况下,每个元素都处于常规文档流中。要突破这种布局元素的方式,就必须把盒子的 position 属性改为其它三个值。

3.2 相对定位

relative

相对定位,相对的是它原来在文档流中的位置(或者默认位置)。设置之后,可以使用 top、right、bottom 和 left 属性来改变它的位置。多数情况下,只用 top 和 left 就可以实现我们想要的效果。

使用相对定位的关键就是要考虑到元素原来的空间。因为使用了相对定位的元素只是相对于原始位置挪动了一下,页面没有任何变化,即元素原来占据的空间没有动,其他元素也没动。

3.3 绝对定位

absolute

绝对定位会把元素彻底从文档流中拿出来,然后相对于其他元素(默认是定位上下文 body)定位。同样可以通过 top 和 left 设定偏移值来决定位置。

3.4 固定定位

fixed

从完全移出文档流的角度说,固定定位与绝对定位类似。但不同之处在于,固定定位元素的定位上下文是视口(浏览器窗口或手持设备的屏幕),因此它不会随页面滚动而移动。

提示:固定定位并不常用,最常见的情况是用它创建不随页面滚动而移动的导航元素。

3.5 定位上下文

定位上下文,指的是定位元素所相对偏移的元素。

事实上,只要把元素的外边距和内边距设定好,多数情况下只用静态定位就足以实现页面布局了。很多刚开始接触 CSS 的初学者都会错误地设定 position 属性,最终才发现从文档流中挪出来的这些元素一点也不好控制。因此,除非真需要那么做,否则 不要轻易修改元素默认的 position 属性。

4.显示属性

所有元素都有 position 属性,也有 display 属性。

display属性有三个值:block、inline 和 none。

块级元素,比如段落,标题,列表等,在浏览器上下堆叠显示。

行内元素,比如a、span、img,在浏览器中左右并排显示,只有前一行没有空间时才会显示到下一行。

把块级元素变成行内元素(或者相反):

CSS Code复制内容到剪贴板

/*默认为 block*/

p {display:inline;}

/*默认为 inline*/

a {display:block;}

把元素的 display 设置为 none,则该元素及所有包含在其中的元素,都不会在页面显示,它们原先占据的空间也不会被回收,就好像相关标记根本不存在一样。

与此相对的元素是 visibility 属性,属性值为:visible(默认值)和 hidden。如果设置为 hidden,元素会被隐藏,但其占据的页面空间会被保留。

【CSS元素定位的使用方法】相关文章:

在html中定位属性怎么用,CSS元素定位的使用方法相关推荐

  1. js修改style中某个属性_JS 和 CSS 交互的 5 种方法

    英文 | https://davidwalsh.name/ways-css-javascript-interact译文 | https://www.webhek.com/post/ways-css-j ...

  2. css元素定位:通过元素的标签或者元素的id、class属性定位

    前言 大部分人在使用selenium定位元素时,用的是xpath元素定位方式,因为xpath元素定位方式基本能解决定位的需求.xpath元素定位方式更直观,更好理解一些. css元素定位方式往往被忽略 ...

  3. html的日历中添加行程,HTML/CSS元素定位(html日程表/日历)

    我创建了一个基于html和css的时间表/日历,但我遇到了一些问题.HTML/CSS元素定位(html日程表/日历) 什么,我想是能够有任何的"块",如"块A" ...

  4. html定位一个元素,css元素定位

    css元素定位 1. position:static|无定位 position:static是所有元素定位的默认值, 一般不用注明,除非有需要取消继承的别的定位 example: #div-1 { p ...

  5. html 5 设置标签居中,Html5中新增标签与样式实现元素水平垂直居中的方法

    Html5中新增标签与样式实现元素水平垂直居中的方法 发布时间:2021-06-12 12:44:51 来源:亿速云 阅读:71 作者:小新 这篇文章将为大家详细讲解有关Html5中新增标签与样式实现 ...

  6. html中position属性默认值,CSS position 属性总结

    CSS的position总是属性很容易让人弄混~ 为了仔细区别它们,所以今天总结一下CSS的position属性~ 下面是总结内容~ 有疏漏.错误之处敬请指出!o(^▽^)o 一.简介 定义:posi ...

  7. css transtion不生效_CSS中transition属性不起作用的原因及解决方法

    CSS中的transition属性可用于调整元素更改的时间,它可以像动画一样显示.虽然transition属性可以很方便的实现过渡效果,但是有时候可能会出现无效的情况,所以我们就需要来理解transi ...

  8. CSS中line-height属性详解(CSS之四)

    CSS中line-height属性详解 基本概念 line-height,又称行高,指的是两行文字基线之间的距离,又可以称为这行文字所占的高度. 图中两行基线之间的距离就是行高,基线相关可以查看CSS ...

  9. html中align属性的justify,css text-align属性简介说明

    摘要: 下文讲述css属性text-align的功能简介说明,如下所示: css text-align属性功能说明 css text-align属性功能: 设置html标签中内容的水平对齐方式 tex ...

最新文章

  1. [转] 程序员写简历的注意事项
  2. LSTM之父发文抨击本田奖:请尊重原创!
  3. Android memory
  4. python解释器的安装步骤-Python本地及虚拟解释器配置过程解析
  5. 24、Power Query-数学运算的应用(统计男女人数)
  6. 没学c语言可以学python_学了Python,但是没有学c,直接去学c++是可行的吗?
  7. mysql构建栋_【转载】这次拆库 应是微服务化的拆分方式
  8. opencv3.4.5安装包
  9. 【渝粤教育】广东开放大学 形成性考核 (29)
  10. 使用SVM分类器进行图像多分类
  11. 计算机平面设计专业可以考什么证,平面设计师资格证怎么考_计算机平面设计职称...
  12. 我每年得忽悠10万程序员上车
  13. flashFXP V4.0 烈火汉化绿色版
  14. jquery 实现的省市区级联,无ajax
  15. sqldbx怎么连接远程服务器,SqlDbx连接远程DB2数据库
  16. Uniapp|image无法显示图片
  17. 博主熬夜手写个SpringMVC框架
  18. 信息系统基本知识(六)
  19. 不算不知道,花呗分期的真实利率居然这么高
  20. 初探docker部署gitlab

热门文章

  1. [No0000D6]端口-进程查询.bat
  2. UVA - 1605 Building for UN (联合国大楼)
  3. EasyUI使用JSON保存数据
  4. WPF中ListBox的样式设置
  5. 利用Continuous Testing实现Eclipse环境自己主动单元測试
  6. C#,一种简单的方式实现滚动鼠标缩放图片,平移
  7. 基于visual Studio2013解决面试题之1102合并字符串
  8. WinForm 快捷键设置
  9. Ubuntu 下 libev编译安装
  10. fltk在UbuntuLinux中搭建和测试-《C++程序设计原理与实践》Chapter12:显示模型 环境构建...