CSS定位和居中问题

  定位和居中问题是CSS中经常遇到的。对于一个定长定高的元素,实现其在父元素中的垂直水平居中,可通过position属性实现。当元素大小可变时,这种方法就失效了,我们可以通过flex和table实现居中,这两种方法今后会细致研究,这里只使用position方法。

  任务需要完成的效果图如下:

  

  相应代码如下:

 1 .main{
 2     position: absolute;
 3     top: 50%;
 4     left: 50%;
 5     width: 400px;
 6     height: 200px;
 7     margin: -100px 0 0 -200px;
 8     background-color: #ccc;
 9 }
10 .corner{
11     position: absolute;
12     width: 50px;
13     height: 50px;
14     background-color: #fc0;
15 }
16 .top-left{
17     top: 0;
18     left: 0;
19     border-radius: 0 0 50px 0;
20 }
21 .bottom-right{
22     bottom: 0;
23     right: 0;
24     border-radius: 50px 0 0 0;
25 }

  对应的html代码为:

1 <div class="container">
2         <div class="main">
3             <div class="top-left corner"></div>
4             <div class="bottom-right corner"></div>
5         </div>
6 </div>

  为实现灰色长方形的居中,我们将其position属性设置为absolute,在最开始,我使用的是relative,发现top:50%失效,这是因为50%是相对其父元素高度来说的,而其父元素高度为零。于是我将body和父元素高度设置为100%,依然没有效果(这个疑问还没有解决)。改为absolute后,灰色长方形的偏移是相对页面来说的,实现了垂直居中。

  最后的两个黄色圆角,道理相似,设置完absolute后,进一步为其设置top,bottom,right,left属性即可。

  最后贴一下demo  code

  

  

时间: 2024-08-06 16:37:49

CSS定位和居中问题的相关文章

使定位元素居中的4种方法例举

例子: 创建两个div,定位父级'box'  和   定位元素'sun'.本文要做的是 'sun' 要在 'box' 中居中显示, 该怎么做呢? 定位前效果图: 定位元素居中后的效果图: HTML代码: <!--定位元素父级--> <div id="box"> <!--定位元素--> <div id="sun"></div> </div> 样式代码: <style type="t

CSS定位布局display/float/position属性之间的关系/区别和如何使用取值行为机制

float: left|right; 可以自动排列自动折行, 但需要clear来配合清除浮动;display: inline-block; 有些时候可以替代float实现相同的效果.position: absolute|relative; 要配合top,left等定位; position: absolute会导致元素脱离文档流,被定位的元素等于在文档中不占据任何位置,在另一个层呈现,可以设置z-index.PS的图层效果就是position: absolute. float也会导致元素脱离文档流

css定位技术解析

css定位技术,在网页设计开发中有着很重要的作用.有许多的案例都可以用到它.比如说二级菜单,弹窗,图片轮播等等.现在我来总结一下它的使用. css定位属性是position,它有如下的几种属性值: 1:static:(默认值)无特殊定位,对象遵循正常文档流.top,right,bottom,left等属性不会被应用. 2:relative:对象遵循正常文档流,但将依据top,right,bottom,left等属性在正常文档流中偏移位置. 3:absolute:对象脱离正常文档流,使用top,r

3)js的基础语法使用以及css定位

Css 定位: background-position: 20px 40px; (1)相对定位: 如果仅仅对当前盒子设置相对定位,那么他与原来的盒子没有任何变化 只有一个作用:  父相子绝,不适用相对定位来做压盖现象 不脱标.形影分离.老家留坑 (2)绝对定位: 设置绝对定位的盒子,脱离标准流 (3)固定定位 1):相对定位: <!DOCTYPE html><html lang="en"><head>    <meta charset=&quo

17 css定位

css定位 定位是用来移动元素位置的. 相对位置,参考元素原始位置,偏移某个距离 绝对位置,参考点是最近的有定位的祖先元素,偏移某个距离 定位 1 css定位 相对定位 绝对定位 固定定位 为什么 移动元素 设置元素在包含块中出现的位置,以及遮盖 2 相对定位 position: relative; 参考自己原来的位置,偏移某个距离 * 用途 1 做一些位置微调 2 配合绝对定位使用 * 相对定位的元素不脱标,它原本所占的空间仍保留 top 正数向下 可以理解为:距离原来位置顶边框,距离是100

css定位瞄点透明相关知识

 position 定位属性,检索对象的定位方式: 一.语法: position:static(initial) /absolute/relative/fixed/sticky(粘性定位),unset相当于static 取值: 1.static:默认值,无特殊定位,对象遵循HTML原则, 会忽略left.top.right.bottom和z-index属性: 2.relative :相对定位,是相对于默认位置的偏移定位,通过设置left.top.right.bottom 值可将其移至相对所需位置

absoulue与relative配合定位盒子居中问题

如何通过absoulue与relative配合把一个盒子或者是把2个div块同时放到页面中央部分?定位完成后为什么又需要margin-left与margin-top各往回走50%的长度,别忘记用z-index定位高度,请看下面代码展示: 1 <!DOCTYPE html> 2 <html lang="en"> 3 <head> 4 <meta charset="UTF-8"> 5 <meta name="

CSS定位

一.属性定位(百度首页) 1.通过id定位:(#代表id) driver.find_element_by_css_selector("#kw").send_keys("selenium") 2.通过class定位:(.代表class) driver,find_element_by_css_selector(".s_ipt").send_keys("selenium") 3.通过标签定位:(不推荐) driver.find_el

CSS 定位 (Positioning) CSS 外边距合并 CSS 相对定位

CSS 定位 (Positioning) 属性允许你对元素进行定位. CSS 定位和浮动 CSS 为定位和浮动提供了一些属性,利用这些属性,可以建立列式布局,将布局的一部分与另一部分重叠,还可以完成多年来通常需要使用多个表格才能完成的任务. 定位的基本思想很简单,它允许你定义元素框相对于其正常位置应该出现的位置,或者相对于父元素.另一个元素甚至浏览器窗口本身的位置.显然,这个功能非常强大,也很让人吃惊.要知道,用户代理对 CSS2 中定位的支持远胜于对其它方面的支持,对此不应感到奇怪. 另一方面