Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/83.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Html 从文本开始垂直对齐图像_Html_Css_Vertical Alignment - Fatal编程技术网

Html 从文本开始垂直对齐图像

Html 从文本开始垂直对齐图像,html,css,vertical-alignment,Html,Css,Vertical Alignment,我有以下html <div> <img src="" /> <span>Contrary to popular belief, Lorem Ipsum is not simply random text. It has roots in a piece of classical Latin literature from 45 BC, making it over 2000 years old. Richard McClintock, a L

我有以下html

<div>
    <img src="" /> 
    <span>Contrary to popular belief, Lorem Ipsum is not simply random text. It has roots in a piece of classical Latin literature from 45 BC, making it over 2000 years old. Richard McClintock, a Latin professor at Hampden-Sydney College in Virginia, looked up one of the more obscure Latin words, consectetur, from a Lorem Ipsum passage, and going through the cites of the word in classical literature, discovered the undoubtable source. Lorem Ipsum comes from sections 1.10.32 and 1.10.33 of "de Finibus Bonorum et Malorum" (The Extremes of Good and Evil) by Cicero, written in 45 BC. This book is a treatise on the theory of ethics, very popular during the Renaissance. The first line of Lorem Ipsum, "Lorem ipsum dolor sit amet..", comes from a line in section 1.10.32.
    </span>
</div>


正如您在演示中所看到的,我希望与文本垂直对齐的红色框。我还可以给出eg 400px的div的高度。

如果我要这样做,我会使用一个表显示(它可以工作)

首先,将标记更改为将您的
img
包装在自己的
span
中(这将充当我们的表格单元格):

。。。
...
然后应用以下样式:

div{
显示:表格;
}
跨度{
显示:表格单元格;
垂直对齐:中间对齐;
左侧填充:10px;
}
跨度:第一个孩子{
左侧填充:0;
}
img{
宽度:50px;
高度:50px;
背景:#f00;
}

.

如果我要这样做,我会使用一个表显示(它可以工作)

首先,将标记更改为将您的
img
包装在自己的
span
中(这将充当我们的表格单元格):

。。。
...
然后应用以下样式:

div{
显示:表格;
}
跨度{
显示:表格单元格;
垂直对齐:中间对齐;
左侧填充:10px;
}
跨度:第一个孩子{
左侧填充:0;
}
img{
宽度:50px;
高度:50px;
背景:#f00;
}

.

垂直对齐
属性仅允许
表格
元素或显示为
表格单元格
的元素,如James Donelly在回答中所述, 但作为替代方案,您可以使用:

利润率最高:50%参见示例:

垂直对齐
属性仅允许
表格
元素或显示为
表格单元格
的元素,如James Donelly在回答中所述, 但作为替代方案,您可以使用:

利润率最高:50%参见示例:

您还可以使用以下CSS对红方块图案进行绝对定位,从而获得类似的效果:

div {
    border: 1px dotted blue;
    position: relative;
    min-height: 50px;
}
img{
    width: 50px;
    height: 50px;
    background-color: red;
    display: block;
    position: absolute;
    left: 0;
    top: 50%;
    margin-top: -25px;
}
span{
    display: block;
    margin-left: 60px;
}
在父容器上设置
position:relative
,然后使用绝对定位将
img放置在距离顶部50%的位置,然后应用
margin top:-25px
将其与父容器的高度垂直对齐

您需要在
span
上设置文本
左边距:60px
,以便为方形图案留出空间

一个优点是设计不依赖于
显示:表格单元格

一个缺点是,对于高度小于50px的文本块,文本将与正方形的上边缘对齐,这可能不适合,具体取决于设计要求

请参见演示:


脚注:就我个人而言,我认为
显示:表格单元格
是一个更健壮的解决方案,只要浏览器支持它。如果不支持
表格单元格
,则设计将优雅地退化为与文本块顶部边缘对齐的图案,与绝对文本定位选项的短文本块的限制是一致的。

< P>您也可以使用以下CSS的绝对定位来获得类似的结果:

div {
    border: 1px dotted blue;
    position: relative;
    min-height: 50px;
}
img{
    width: 50px;
    height: 50px;
    background-color: red;
    display: block;
    position: absolute;
    left: 0;
    top: 50%;
    margin-top: -25px;
}
span{
    display: block;
    margin-left: 60px;
}
在父容器上设置
position:relative
,然后使用绝对定位将
img放置在距离顶部50%的位置,然后应用
margin top:-25px
将其与父容器的高度垂直对齐

您需要在
span
上设置文本
左边距:60px
,以便为方形图案留出空间

一个优点是设计不依赖于
显示:表格单元格

一个缺点是,对于高度小于50px的文本块,文本将与正方形的上边缘对齐,这可能不适合,具体取决于设计要求

请参见演示:


脚注:就我个人而言,我认为
显示:表格单元格
是一个更健壮的解决方案,只要浏览器支持它。如果不支持<代码>表格单元格< /代码>,那么该设计将优雅地降级到与文本块的顶部边缘对齐的主题,这与短文本块的绝对定位选项的限制相一致。

您希望图像与文本内联吗?是的,图像与文本内联…是否希望图像与文本内联?是的,图像与文本内联。。。。