当前位置: 首页>編程日記>正文

css 之水平居中对齐

css 之水平居中对齐

0 前言

初学css,对各种居中很是头疼,这里特地整理一下.

 

1 文字水平居中对齐及它的延伸写法

1.设置 text-align 属性 

 

例如:

 <h4 style="text-align: center;">测试标题1</h4>

具体解释:

CSS属性定义行内内容(例如文字)如何相对它的块父元素对齐。text-align 并不控制块元素自己的对齐,只控制它的行内内容的对齐

MDN解释地址:

https://developer.mozilla.org/zh-CN/docs/Web/CSS/text-align

总结:

1.只能用于 块级元素内容(block containers) 的行内内容(文字,行内元素,行内块元素)的居中, 对行内元素本身设置是无效的.

例如 <i style="text-align: center;">测试标题1</i> 这种写法 就不会在屏幕中居中对齐

但是 当他转换为块级元素的时候就又可以居中了 ,或者父元素是块元素且设置为居中的时候文字(行内元素)也可以居中

例如:


<!-- 下面这种是不可以居中的,因为i标签默认是行内元素,而且div 也没有设置居中 -->
<div><i style="text-align: center;">测试标题1</i>
</div>
<!-- 下面两种是都可以居中的 -->
<i style="text-align: center; display: block">测试标题1</i>
<div style="text-align: center;"><i>测试标题1</i></div>

效果图:

2.该属性会被子元素继承

例如:

   <div style="text-align: center;"><h4>测试标题1</h4></div>

这个例子跟上图中的单h4例子效果是一样的

上图可以看到 文字的内容已经居中,但是元素并没有居中.

3.MDN中有个备注 居中元素,不居中文字 的方法 特此注明一下 防止自己忘了

备注

居中一个块元素且不居中它的行内内容的标准兼容的方法是将它的左、右margin设为auto, 例如:

margin:auto; 或margin:0 auto; 或margin-left:auto; margin-right:auto;

2 元素的水平居中

1.对于确定宽度的块级元素:

magin:margin 属性为给定元素设置所有四个(上下左右)方向的外边距属性。也就是 margin-topmargin-rightmargin-bottom,和 margin-left 四个外边距属性设置的简写。

Magin:auto 让浏览器自己选择一个合适的外边距。有时,在一些特殊情况下,该值可以使元素居中。

MDN:https://developer.mozilla.org/zh-CN/docs/Web/CSS/margin

 margin和width实现水平居中:magin: 0 auto 就可以实现水平居中

注意:

这种只适合于父元素是body的时候,其他的情况下不行.

MDN中已经不推荐这种magin: 0 auto 来实现水平的方法,

2.子绝父相的设置方法

意思 是将 子元素设置为为绝对定位,让其他的父元素设置为相对定位,再将子元素的margin left 和 right 设置为 auto, left 和right 设置为 0 '

这样的话子元素就会相对于父元素进行居中对齐

代码:

  <div style="position: relative; height:100px ; background-color:rgb(143, 143, 207)"><divstyle="position: absolute; width: 50px; height: 50px; left:0 ;right: 0; ;margin: 0 auto; background-color: pink; "></div></div>

原理:

left 和right : 定义了定位元素的左/右外边距边界与其包含块左/右边界之间的偏移,非定位元素设置此属性无效。

当设置left 和 right 为 0 或者是相同数值 边距 例如 (left:1px;right: 1px) 说明左右边距的权重是一样的

margin:

注意:

1.这种布局下需要注意高度塌陷问题

2.这种写法兼容性比较好,但是比较麻烦,

3.这种写法  将 top: 0; bottom 0;  magin :auto ; 的情况下 也可以设置垂直居中

3.flex布局中的居中

关于flex 可以看下阮一峰大大的这篇博客,写的非常详细,我这里就不多废话了

http://www.ruanyifeng.com/blog/2015/07/flex-grammar.html

MDN的导引地址:

https://developer.mozilla.org/zh-CN/docs/Web/CSS/CSS_Flexible_Box_Layout/Aligning_Items_in_a_Flex_Container

设置改

  • justify-content - 控制主轴(横轴)上所有 flex 项目的对齐(一般为水平居中,主轴为横向)。
  • align-items - 控制交叉轴(纵轴)上所有 flex 项目的对齐(一般是垂直居中)。

代码

   <div style="display:flex; justify-content: center"><div style="width: 50px;height: 50px;background-color: pink;"></div></div>

4.gird布局中居中方式

grid布局的介绍 也可以同理看下这篇博客

http://www.ruanyifeng.com/blog/2019/03/grid-layout-tutorial.html

主要是用grid布局中的justify-items 属性

MDN中的解释

CSS 的 justify-items 属性为所有盒中的项目定义了默认的 justify-self , 可以使这些项目以默认方式沿适当轴线对齐到每个盒子。

地址:https://developer.mozilla.org/zh-CN/docs/Web/CSS/justify-items

同理用align-items  属性可以实现垂直居中

<style>  
.tb {display: grid;justify-items: center;}.tb div {background-color: pink;width: 50px;height: 50px;}
</style>  <div class="tb"><div></div>
</div>

 


https://www.fengoutiyan.com/post/14503.html

相关文章:

  • 鏡像模式如何設置在哪,圖片鏡像操作
  • 什么軟件可以把圖片鏡像翻轉,C#圖片處理 解決左右鏡像相反(旋轉圖片)
  • 手機照片鏡像翻轉,C#圖像鏡像
  • 視頻鏡像翻轉軟件,python圖片鏡像翻轉_python中鏡像實現方法
  • 什么軟件可以把圖片鏡像翻轉,利用PS實現圖片的鏡像處理
  • 照片鏡像翻轉app,java實現圖片鏡像翻轉
  • 什么軟件可以把圖片鏡像翻轉,python圖片鏡像翻轉_python圖像處理之鏡像實現方法
  • matlab下載,matlab如何鏡像處理圖片,matlab實現圖像鏡像
  • 圖片鏡像翻轉,MATLAB:鏡像圖片
  • 鏡像翻轉圖片的軟件,圖像處理:實現圖片鏡像(基于python)
  • canvas可畫,JavaScript - canvas - 鏡像圖片
  • 圖片鏡像翻轉,UGUI優化:使用鏡像圖片
  • Codeforces,CodeForces 1253C
  • MySQL下載安裝,Mysql ERROR: 1253 解決方法
  • 勝利大逃亡英雄逃亡方案,HDU - 1253 勝利大逃亡 BFS
  • 大一c語言期末考試試題及答案匯總,電大計算機C語言1253,1253《C語言程序設計》電大期末精彩試題及其問題詳解
  • lu求解線性方程組,P1253 [yLOI2018] 扶蘇的問題 (線段樹)
  • c語言程序設計基礎題庫,1253號C語言程序設計試題,2016年1月試卷號1253C語言程序設計A.pdf
  • 信奧賽一本通官網,【信奧賽一本通】1253:抓住那頭牛(詳細代碼)
  • c語言程序設計1253,1253c語言程序設計a(2010年1月)
  • 勝利大逃亡英雄逃亡方案,BFS——1253 勝利大逃亡
  • 直流電壓測量模塊,IM1253B交直流電能計量模塊(艾銳達光電)
  • c語言程序設計第三版課后答案,【渝粵題庫】國家開放大學2021春1253C語言程序設計答案
  • 18轉換為二進制,1253. 將數字轉換為16進制
  • light-emitting diode,LightOJ-1253 Misere Nim
  • masterroyale魔改版,1253 Dungeon Master
  • codeformer官網中文版,codeforces.1253 B
  • c語言程序設計考研真題及答案,2020C語言程序設計1253,1253計算機科學與技術專業C語言程序設計A科目2020年09月國家開 放大學(中央廣播電視大學)
  • c語言程序設計基礎題庫,1253本科2016c語言程序設計試題,1253電大《C語言程序設計A》試題和答案200901
  • 肇事逃逸車輛無法聯系到車主怎么辦,1253尋找肇事司機