我正在尝试在网站上的图片右侧添加两个方形广告。我的想法就是让这个响应如下:
http://s9.postimg.org/pdecyqi8f/div.png
这可以用CSS实现吗?
我使用inline-block
将广告定位到右侧,max-width: 100%
来缩放图片。我需要IE 9+和移动浏览器的支持。
我尝试了不同的方法,甚至不知道要显示哪个代码示例。使用inline-block
:
div{
border: 2px solid;
}
#img,#container{
display: inline-block;
vertical-align: middle;
}
#ad1, #ad2{
width: 30px;
height: 30px;
color: red;
}
#img{
width: 100px;
height: 150px;
max-width: 100%;
color: purple;
}
<div id="img"> </div>
<div id="container">
<div id="ad1">ad1</div>
<div id="ad2">ad2</div>
</div>
然而在这种情况下,我不会在狭窄的屏幕上得到理想的视图。另外,由于max-width: 100%;
用于#img
,因此这个div会在狭窄的屏幕上覆盖#ad1
和#ad2
。
要实现所需的移动视图,我必须将HTML更改为以下内容:
div{
border: 2px solid;
display: inline-block;
}
#ad1, #ad2{
width: 30px;
height: 30px;
color: red;
vertical-align: top;
}
#img{
width: 100px;
height: 150px;
max-width: 100%;
color: purple;
}
<div id="ad1">ad1</div>
<div id="img"> </div>
<div id="ad2">ad2</div>
在这种情况下,我真的不知道如何将#ad1
放在#img
的右侧。我尝试了绝对定位,它没有用。由于兼容性原因,Flex似乎也不是一种选择。
我也试过这样使用direction:rtl;
:
div{
border: 2px solid;
display: inline-block;
}
#container{
direction:rtl;
border: 0px;
}
#ad1, #ad2{
width: 30px;
height: 30px;
color: red;
vertical-align: top;
}
#img{
width: 100px;
height: 150px;
max-width: 100%;
color: purple;
}
<div id="container">
<div id="ad1">ad1</div>
<div id="img"> </div>
<div id="ad2">ad2</div>
</div>
和此:
div{
border: 2px solid;
text-align: left;
}
#container{
direction:rtl;
border: 0px;
}
#ad1, #ad2{
width: 30px;
height: 30px;
color: red;
vertical-align: top;
}
#img{
width: 100px;
height: 150px;
max-width: 100%;
color: purple;
display: inline-block;
}
#ad1{
display: inline-block;
}
<div id="container">
<div id="ad1">ad1</div>
<div id="img"> </div>
</div>
<div id="ad2">ad2</div>
由于我无法定位
#ad2
,没有多大帮助。
所以,我不要求编写任何代码。我只是急于寻求建议。
答案 0 :(得分:0)
如果您不需要支持Android 2和Opera Mini,您仍然可以使用flexbox通过媒体查询来实现此结果。示例如下:
.img {
width: 100%;
max-width: 100%;
height: 300px;
background: blue;
}
.ad {
background: red;
width: 100px;
height: 100px;
}
@media (min-width : 801px) {
.wrapper {
padding-right: 110px;
}
.img {
float: left;
}
.ad {
clear: right;
float: right;
margin-right: -110px;
margin-bottom: 10px;
}
}
@media (max-width : 800px) {
.wrapper {
display: flex;
flex-direction: column;
}
.img {
order: 2;
margin: 10px auto;
}
.ad {
margin: 0 auto;
}
.ad1 {
order: 1;
}
.ad2 {
order: 3;
}
}
&#13;
<div class="wrapper">
<div class="img"> </div>
<div class="ad ad1">ad1</div>
<div class="ad ad2">ad2</div>
</div>
&#13;
此外: