博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
css 宽高自适应的div 元素 如何居中 垂直居中
阅读量:6441 次
发布时间:2019-06-23

本文共 2252 字,大约阅读时间需要 7 分钟。

在我们 编写css 样式的时候经常会遇见一个问题 那就是一个 宽高未知的元素 要让他 垂直居中如何实现这个呢 下面是我常用的两种方法

上代码

  下面的是 结构代码 

  <div class="wrap">//此处为父组件 我们会设置父级的宽高并让其居中

  <div class="center">//子组件我们要实现它的垂直居中 不设置他的宽高 宽高 都由下面的img引入的图片撑开

  <img width="100px" src="img/logo.a68568a.png"/>

  </div>

  </div>

  下面是样式代码

       .wrap{设置一个居中的外框

        width: 500px;

height: 400px;

border: 1px solid black;

margin: 0 auto;

text-align: center;//水平居中

}

.wrap:before{//设置一个宽度为0的伪类为什么要设置这个伪类 起时这个伪类起到了一个对准线的作用

display: inline-block;

content: '';

height: 100%;

width: 0;

vertical-align: middle;//垂直居中

}

.center{//这个时候 在对我们的centerdiv 设置 vertical-align: middle 就可垂直居中了

vertical-align: middle;

display: inline-block;

}

img{

vertical-align: top;

}

 

  二 css3 transform解决

    .wrap{//一个固定宽高 居中的外框

width: 500px;

height: 400px;

border: 1px solid black;

margin: 0 auto;

}

    .center{//我们的center div 还是写成inline-block 的样式

         position: relative;

          //相对定位 通过相对定位left  top 值的设置来让center div 的左上角的位置 为wrap 的中心

          //但这个时候我们还不是完全垂直居中 因为我们的center div 本身也有自适应的宽高 这个时候 就要用到transform了

          //通过translateX(-50%) translateY(-50%) 让center 本身在x轴y轴上偏移50% 达到真正的居中(轴心点默认在左上角)

          //注意transform各个浏览器有不同的前缀并且不兼容ie8 以下

 top: 50%;

 left: 50%;

 display: inline-block;

-webkit-transform: translateX(-50%) translateY(-50%);

}

img{

vertical-align: top;

}

<!DOCTYPE html><html><head><meta charset="utf-8" /><title></title><style type="text/css">document{height: 100%;}html{height: 100%;}body{height: 100%;overflow: hidden;margin: 0;}#bigwrap{width: 100%;height: 100%;text-align: center;}#bigwrap:before{height: 100%;width: 0;vertical-align: middle;content: '';display: inline-block;}.wrap{width: 500px;height: 400px;border: 1px solid black;margin: 0 auto;text-align: center;}.wrap:before{display: inline-block;content: '';height: 100%;width: 0;vertical-align: middle;}.center{vertical-align: middle;display: inline-block;}img{vertical-align: top;}/*.center {   position: fixed;  top: 50%;  left: 50%;  background-color: #000;  width:50%;  height: 50%;-webkit-transform: translateX(-50%) translateY(-50%);}*/</style></head><body><!--<div id="bigwrap">--><div class="wrap"><div class="center"><img width="100px" src="img/logo.a68568a.png"/></div></div></div></body></html>

 

转载于:https://www.cnblogs.com/YinWeiBlog/p/7518544.html

你可能感兴趣的文章
win32窗口机制之CreateWindow
查看>>
C/C++ 一段代码区分数组指针|指针数组|函数指针|函数指针数组
查看>>
awakeFromNib小总结
查看>>
java知识大全积累篇
查看>>
善于总结所做所学的内容
查看>>
Lua-简洁、轻量、可扩展的脚本语言
查看>>
org.hibernate.MappingException: entity class not found hbm可以解析,但是实体类不能解析...
查看>>
Android -- Drag&&Drop
查看>>
Extjs4:改变Grid单元格背景色(转载)
查看>>
中医无绝症[转载]
查看>>
ZendStudio10.6.1如何安装最新的集成svn小工具?
查看>>
PHP中$_SERVER的详细参数与说明
查看>>
jquery easyui datagrid mvc server端分页排序筛选的实现
查看>>
去了大公司就一定能学到很牛的技术么?
查看>>
methanol 模块化的可定制的网页爬虫软件,主要的优点是速度快。
查看>>
IOS开发之表视图(UITableView)
查看>>
Notepad++去除代码行号的几种方法
查看>>
polay定理总结
查看>>
CodeForces 396C 树状数组 + DFS
查看>>
[sharepoint]rest api文档库文件上传,下载,拷贝,剪切,删除文件,创建文件夹,修改文件夹属性,删除文件夹,获取文档列表...
查看>>