>>分享Web前端开发技术,并对孙卫琴的《精通Vue.js:Web前端开发技术详解》提供技术支持 书籍支持  卫琴直播  品书摘要  在线测试  资源下载  联系我们
发表一个新主题 开启一个新投票 回复文章 您是本文章第 25929 个阅读者 刷新本主题
 * 贴子主题:  CSS 布局:水平和垂直对齐 回复文章 点赞(0)  收藏  
作者:sunshine    发表时间:2019-08-11 12:05:49     消息  查看  搜索  好友  邮件  复制  引用

  

CSS 布局 - 水平 & 垂直对齐

水平 & 垂直居中对齐

元素居中对齐

     要水平居中对齐一个元素(如 <div>), 可以使用  margin: auto;。

     设置到元素的宽度将防止它溢出到容器的边缘。

      元素通过指定宽度,并将两边的空外边距平均分配:

       div 元素是居中的                                

范例

.center   {
     margin:   auto  ;
     width:   50 %  ;
     border:   3 px   solid   green  ;
     padding:   10 px  ;
}

                注意: 如果没有设置   width 属性(或者设置 100%),居中对齐将不起作用。                    

文本居中对齐

     如果仅仅是为了文本在元素内居中对齐,可以使用  text-align: center;

    文本居中对齐                                

范例

.center   {
     text-align:   center  ;
     border:   3 px   solid   green  ;
}

                 提示: 更多文本对齐范例,请参阅 CSS 文本 章节。                    

图片居中对齐

     要让图片居中对齐, 可以使用  margin: auto; 并将它放到 元素中:

    点击在新窗口中浏览原图
CTRL+鼠标滚轮放大或缩小                    

范例

img   {
     display:   block  ;
     margin:   auto  ;
     width:   40 %  ;
}

左右对齐 - 使用定位方式

     我们可以使用  position: absolute; 属性来对齐元素:                                        

范例

.right   {
     position:   absolute  ;
     right:   0 px  ;
     width:   300 px  ;
     border:   3 px   solid   #73AD21  ;
     padding:   10 px  ;
}

                    注释:绝对定位元素会被从正常流中删除,并且能够交叠元素。

       提示: 当使用  position 来对齐元素时, 通常  <body> 元素会设置

       margin 和  padding 。 这样可以避免在不同的浏览器中出现可见的差异。

       当使用 position 属性时,IE8 以及更早的版本存在一个问题。如果容器元素(在我们的案例中是 <div class="container">)设置了指定的宽度,并且省略了 !DOCTYPE 声明,那么 IE8 以及更早的版本会在右侧增加 17px 的外边距。这似乎是为滚动条预留的空间。当使用 position 属性时,请始终设置 !DOCTYPE 声明:                                

范例

body   {
     margin:   0  ;
     padding:   0  ;
}

.container   {
     position:   relative  ;
     width:   100 %  ;
}

.right   {
     position:   absolute  ;
     right:   0 px  ;
     width:   300 px  ;
     background-color:   #b0e0e6  ;
}

左右对齐 - 使用 float 方式

     我们也可以使用  float 属性来对齐元素:                    

范例

.right   {
     float:   right  ;
     width:   300 px  ;
     border:   3 px   solid   #73AD21  ;
     padding:   10 px  ;
}

        当像这样对齐元素时,对 <body> 元素的外边距和内边距进行预定义是一个好主意。这样可以避免在不同的浏览器中出现可见的差异。                                            
  注意:如果子元素的高度大于父元素,且子元素设置了浮动,那么子元素将溢出,这时候你可以使用 " clearfix(清除浮动)" 来解决该问题。
        我们可以在父元素上添加 overflow: auto; 来解决子元素溢出的问题:                    

范例

.clearfix   {
     overflow:   auto  ;
}

     当使用 float 属性时,IE8 以及更早的版本存在一个问题。如果省略 !DOCTYPE 声明,那么 IE8 以及更早的版本会在右侧增加 17px 的外边距。这似乎是为滚动条预留的空间。当使用 float 属性时,请始终设置 !DOCTYPE 声明:                            

范例

body   {
     margin:   0  ;
     padding:   0  ;
}

.right   {
     float:   right  ;
     width:   300 px  ;
     background-color:   #b0e0e6  ;
}

垂直居中对齐 - 使用 padding

     CSS 中有很多方式可以实现垂直居中对齐。 一个简单的方式就是头部顶部使用  padding:

     我是垂直居中。                        

范例

.center   {
     padding:   70 px   0  ;
     border:   3 px   solid   green  ;
}

                 如果要水平和垂直都居中,可以使用  padding 和  text-align: center:

     我是水平和垂直都居中的。                                

范例

.center   {
     padding:   70 px   0  ;
     border:   3 px   solid   green  ;
     text-align:   center  ;
}

垂直居中 - 使用 line-height

    我是垂直居中的。                                

范例

.center   {
     line-height:   200 px  ;
     height:   200 px  ;
     border:   3 px   solid   green  ;
     text-align:   center  ;
}

/*  如果文本有多行,添加以下代码:  */
.center   p   {
     line-height:   1.5  ;
     display:   inline-block  ;
     vertical-align:   middle  ;
}

垂直居中 - 使用 position 和 transform

     除了使用  padding 和  line-height 属性外,我们还可以使用  transform 属性来设置垂直居中:                        

范例

.center   {  
     height:   200 px  ;
     position:   relative  ;
     border:   3 px   solid   green  ;
}

.center   p   {
     margin:   0  ;
     position:   absolute  ;
     top:   50 %  ;
     left:   50 %  ;
     transform:   translate (- 50 % , - 50 % )  ;
}

程序猿的技术大观园:www.javathinker.net



[这个贴子最后由 flybird 在 2020-03-07 12:57:12 重新编辑]
  Java面向对象编程-->面向对象开发方法概述之UML语言(下)
  JavaWeb开发-->JSP中使用JavaBean(Ⅰ)
  JSP与Hibernate开发-->映射对象标识符
  Java网络编程-->用Swing组件展示HTML文档
  精通Spring-->
  Vue3开发-->绑定表单
  vue3.0-基本特性和用法
  10个开发者经常问的JavaScript面试题(附答案解析)
  JavaScript数组去重(12种方法)
  最新的Vue面试题大全含源码级回答,吊打面试官系列
  vue 项目中使用loadsh 的 防抖(debounce)和节流(throttle...
  BootStrap, React, Vue的比较
  vue中监听object数据变化的基本原理
  Vue CLI内网安装(禁止运行vue指令解决方案)
  css 实现不定数量的tab切换和页面切换
  Vue的使用方法
  JavaScript 进制转换的实用代码
  CSS3 2D 转换
  JavaScript 闭包
  JavaScript 正则表达式
  jQuery Mobile 简介
  更多...
 IPIP: 已设置保密
楼主      
1页 0条记录 当前第1
发表一个新主题 开启一个新投票 回复文章


中文版权所有: JavaThinker技术网站 Copyright 2016-2026 沪ICP备16029593号-2
荟萃Java程序员智慧的结晶,分享交流Java前沿技术。  联系我们
如有技术文章涉及侵权,请与本站管理员联系。