我有一个200 x 200像素的div.我想在div的中间放置一个50 x 50像素的图像.
怎么做到呢?
我可以通过使用text-align: center
div 来使它水平居中.但垂直对齐是个问题..
在旧浏览器中工作(IE> = 8)
绝对位置结合自动边距允许水平和垂直居中元素.元素位置可以基于使用相对定位的父元素位置.查看结果
img { position: absolute; margin: auto; top: 0; left: 0; right: 0; bottom: 0; }
就个人而言,我将它作为背景图像放在div中,CSS就是:
#demo { background: url(bg_apple_little.gif) no-repeat center center; height: 200px; width: 200px; }
(假设id="demo"
你正在指定div height
并width
添加一个background
不应该是一个问题)
让浏览器承受压力.
另一种方法是创建一个table
with valign
,当然.无论你是否知道div的高度,这都可行.
但是你应该css
尽可能地坚持下去.
我会设置你的更大的div position:relative;
然后为你的形象做这个:
img.classname{ position:absolute; top:50%; left:50%; margin-top:-25px; margin-left:-25px; }
这只能起作用,因为您知道图像和包含div的尺寸.这也可以让你在包含div中的其他项目...使用line-height的解决方案不会.
编辑:注意...你的边距是图像大小的一半.
这工作正常:
display: block; margin-left: auto; margin-right: auto
如果上面只给你水平居中,请尝试这个:
.outerContainer { position: relative; } .innerContainer { width: 50px; //your image/element width here height: 50px; //your image/element height here overflow: auto; margin: auto; position: absolute; top: 0; left: 0; bottom: 0; right: 0; }
这是另一种将所有内容集中在一起的方法.
工作小提琴
HTML :(简单如初)
/*this can be an img, span, or everything else*/ I'm the Content
CSS:
.Container { text-align: center; } .Container:before { content: ''; height: 100%; display: inline-block; vertical-align: middle; } .Content { display: inline-block; vertical-align: middle; }
容器和内容高度未知.
没有特定负边距的居中,没有设置行高(因此它适用于多行文本)和没有脚本,也适用于CSS过渡.
这有点晚了,但这是我用来垂直对齐父div中的元素的解决方案.
当您知道容器div的大小但不知道所包含图像的大小时,这非常有用.(使用灯箱或图像轮播时经常出现这种情况).
这是你应该尝试的样式:
container div { display:table-cell; vertical-align:middle; height:200px; width:200px; } img { /*Apply any styling here*/ }
使用Flexbox:https://scotch.io/tutorials/a-visual-guide-to-css3-flexbox-properties
.outerDiv {
display: flex;
flex-direction: column;
justify-content: center; /* Centering y-axis */
align-items :center; /* Centering x-axis */
}
我发现上面的Valamas和Lepu的答案是处理未知大小或已知大小的图像的最直接的答案,你不想硬编码到你的CSS中.我只是做了一些小调整:删除不相关的样式,将其大小调整为200px以匹配问题,并添加max-height/max-width来处理可能太大的图像.
div.image-thumbnail { width: 200px; height: 200px; line-height: 200px; text-align: center; } div.image-thumbnail img { vertical-align: middle; max-height: 200px; max-width: 200px; }
在div中
Vertical-align是最滥用的css样式之一.对于不是td或css"display:table-cell"的元素,你的预期效果不正常.
这是一个非常好的帖子.http://phrogz.net/CSS/vertical-align/index.html
实现您正在寻找的最常用的方法是:
填充顶部/底部
绝对的位置
行高
在CSS中执行:
img { display:table-cell; vertical-align:middle; margin:auto; }
@sleepy您可以使用以下属性轻松完成此操作:
#content {
display: flex;
align-items: center;
width: 200px;
height: 200px;
border: 1px solid red;
}
#myImage {
display: block;
width: 50px;
height: 50px;
margin: auto;
border: 1px solid yellow;
}
通常,我将设置line-height
为200px.通常是诀窍.
我有一个图像库,我不知道图像的确切高度或宽度,我只知道它们比它们将被包含的div小.
通过在容器上使用行高设置和在image元素上使用vertical-align:middle的组合,我终于使用以下HTML标记和以下CSS在FF 3.5,Safari 4.0和IE7.0上工作.
HTML标记
CSS
div.painting { float:left; height:138px; /* fixed dimensions */ width: 138px; border: solid 1px white; background-color:#F5F5F5; line-height:138px; text-align:center; } div.painting a img { border:none; vertical-align:middle; }
这对我有用:
Another way (not mentioned here yet) is with Flexbox.
Just set the following rules on the container div
:
display: flex; justify-content: center; /* align horizontal */ align-items: center; /* align vertical */
FIDDLE
div {
width: 200px;
height: 200px;
border: 1px solid green;
display: flex;
justify-content: center;
/* align horizontal */
align-items: center;
/* align vertical */
}
19> joshuahedlun..:
这是一个旧的解决方案,但浏览器市场份额已经足够先进,如果您不担心IE7的降级,您可以在没有IE黑客部分的情况下通过.当您知道外部容器的尺寸但是可能知道或不知道内部图像的尺寸时,这种方法有效.
.parent {
display: table;
height: 200px; /* can be percentages, too, like 100% */
width: 200px; /* can be percentages, too, like 100% */
}
.child {
display: table-cell;
vertical-align: middle;
margin: 0 auto;
}
推荐阅读
-
如何解决《使用BeautifulSoup时,无需任何猜测即可正确检测编码》经验,为你挑选了0个好方法。 ...
[详细]
-
如何解决《简单的htmldom解析器返回错误500》经验,为你挑选了1个好方法。 ...
[详细]
-
如何解决《删除所有空格除了捕获组中包含的内容》经验,为你挑选了0个好方法。 ...
[详细]
-
如何解决《为什么这不会在内联中工作?》经验,为你挑选了1个好方法。 ...
[详细]
-
如何解决《使用SwiftPackageManager时,如何生成用于开发的Xcode项目文件》经验,为你挑选了2个好方法。 ...
[详细]
-
如何解决《如何按字母顺序对字符串的ArrayList进行排序?》经验,为你挑选了2个好方法。 ...
[详细]
-
如何解决《如何对键进行排序:按列表中的值列出字典?》经验,为你挑选了1个好方法。 ...
[详细]
-
如何解决《为什么有些字符不能在Python的IDLE中输入?》经验,为你挑选了1个好方法。 ...
[详细]
-
如何解决《计算长数中的Set位数》经验,为你挑选了1个好方法。 ...
[详细]
-
如何解决《Laravel说Authguard[]没有定义》经验,为你挑选了2个好方法。 ...
[详细]
-
如何解决《如何在SwiftforLinux中读取用户输入或stdin?》经验,为你挑选了1个好方法。 ...
[详细]
-
如何解决《在工具栏下设置导航抽屉》经验,为你挑选了1个好方法。 ...
[详细]
-
如何解决《UICollectionView每行显示3个项目》经验,为你挑选了1个好方法。 ...
[详细]
-
如何解决《groovyif语句与变量中的正则表达式》经验,为你挑选了1个好方法。 ...
[详细]
-
如何解决《使用fetch时拒绝承诺》经验,为你挑选了0个好方法。 ...
[详细]
-
如何解决《在Sails.js中使用客户端模板》经验,为你挑选了1个好方法。 ...
[详细]
-
如何解决《warpPerspective和perspectiveTransform之间有所不同》经验,为你挑选了1个好方法。 ...
[详细]
-
如何解决《UnityWebGL的EditorUtility.OpenFilePanel(运行时)》经验,为你挑选了1个好方法。 ...
[详细]
-
如何解决《Webpackextract-text-webpack-plugin和css-loader缩小》经验,为你挑选了1个好方法。 ...
[详细]
-
如何解决《Tensorflow卷积神经网络-使用小数据集进行训练,对图像应用随机变化》经验,为你挑选了0个好方法。 ...
[详细]
吐了个 "CAO" !
Tags | 热门标签
RankList | 热门文章
-
1RSpec 3错误未定义的方法`get'在请求测试中
-
2Python Pandas DataFrame:不可共享的类型:str()> int()
-
3如何使Tomcat在443而不是默认端口8080上运行?
-
4无法在'IDBDatabase'上执行'createObjectStore'
-
5grunt serve:concurrent:服务器因警告而中止
-
6在neo4j中插入数据的更快捷方式?
-
7快速语言中'#'标记的含义是什么?
-
8如何使用javascript从数组对象中获取所有值?
-
9如何使用RSpec测试rake任务?
-
10最佳做法是跨多个线程使用静态数据库连接吗?
-
11合并Android Studio中的模块?
-
12无法指定矢量的初始大小
-
13通过EL 3.0访问JSP中的静态属性或方法(JEE7; Tomcat 8)
-
14如何在子类中装饰继承的方法?
-
15我们如何在给定的时间范围内阅读卡夫卡主题?
-
16Tkinter IntVar返回PY_VAR0而不是值
-
17Oracle DB的隔离级别和JDBC的TRANSACTION_NONE属性
-
18为什么points.sort(function(a,b){return ab}); 返回-1,0或1?
-
19BeautifulSoup有错误的回应
-
20ap:commandButton操作后如何关闭ap:dialog?
DevBox开发工具箱 | 专业的在线开发工具网站 京公网安备 11010802040832号 | 京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有