<body>
<div id="col_home">first text first text</div>
<div id="col_so"> text text text</div>
<div id="col_tra">
<div id="picture">
<img src="img/Ordner ZU.png" width="100px" height="100px" />
</div>
image title
</div>
<div id="col_co">last text last text</div>
</body>
这是我用于格式化的css
html {
width: 1024px;
height: 768px;
margin: auto;
border: 1px solid;
}
body, div {
margin: 0px;
width: 100%;
height: 100%;
}
#col_home {
position: relative;
float: left;
left: 0%;
top: 0%;
width: 25%;
height: 100%;
}
#col_so {
position: relative;
float: left;
left: 0%;
top: 0%;
width: 25%;
height: 100%;
background-color: rgb(255, 255, 1);
}
#col_tra {
position: relative;
float: left;
left: 0%;
top: 0%;
width: 25%;
height: 100%;
background-color: rgb(255, 204,51);
}
#col_co {
position: relative;
float: left;
left: 0%;
top: 0%;
width: 25%;
height: 100%;
background-color: rgb(255, 153, 0);
}
#picture {
position: absolute;
left: 50%;
clear: left;
}
感谢任何人和每个人的帮助。正如我所说,我主要是为了好玩,但我仍想为我的学习曲线找出一个可能的解决方案;)。我确实首先用id-tags运行它,但是现在我认为它不会产生任何影响,至少在我得到的结果中没有。
答案 0 :(得分:0)
实现这一目标的一种简单方法是使用flexbox。要将子元素置于其父元素中心,您可以使用justify-content:center;
水平对齐项目,align-items:center
- 垂直对齐。 flex-flow:row
使您的子元素显示在一行中,如果您希望它们显示在列中,请使用flex-flow:column
。您可以点击下面的按钮运行代码段来查看结果。
html {
width: 1024px;
height: 768px;
margin:auto;
border: 1px solid;
}
body, div {
margin:0;
width: 100%;
height: 100%;
display:flex;
flex-flow:row;
}
#col_home {
width:25%;
}
#col_so {
width:25%;
background-color: rgb(255, 255, 1);
}
#col_tra {
width:25%;
flex-flow:column;
background-color: rgb(255, 204,51);
}
#col_co {
width:25%;
background-color: rgb(255, 153, 0);
}
#picture{
justify-content:center;
align-items:center;
}
<body>
<div id="col_home">first text first text</div>
<div id="col_so"> text text text</div>
<div id="col_tra">
<div id="picture">
<img src="img/Ordner ZU.png" width="100px" height="100px"/>
</div>
</div>
<div id="col_co">last text last text</div>
</body>
答案 1 :(得分:0)
使用float
这样的列布局已经成为过去 - 你真的想要使用flexible box model(又名“flexbox”)。在下面的示例中,您可以看到设置列所需的CSS代码相当少,并且每列始终尝试通过“flexing”占用任何可用空间。由于有4列,它们总是占据25%的空间。
然后在任何单独的列中,您可以使用传统的relative
定位顶部/左侧和边距偏移来完美居中图像:
html, body {
height: 100%;
margin: 0;
}
body {
display: flex;
flex-flow: row;
}
.col {
flex: 1 1 auto;
position: relative;
}
#col2 {
background-color: rgb(255, 255, 1);
}
#col3 {
background-color: rgb(255, 204,51);
}
#col4 {
background-color: rgb(255, 153, 0);
}
#picture {
left: 50%;
margin-left: -50px;
margin-top: -50px;
position: relative;
top: 50%;
}
<div class="col" id="col1"></div>
<div class="col" id="col2"></div>
<div class="col" id="col3">
<div id="picture">
<img src="img/Ordner ZU.png" width="100px" height="100px" />
<br>image title
</div>
</div>
<div class="col" id="col4"></div>
不确定你在鼠标悬停时究竟要做什么,但这应该让你非常接近。您还可以将每个列转换为弹性框,并尝试将图像与justify
或align
属性对齐,但这可能会因悬停效果而变得棘手。