裁剪图像左,右

问题描述:

我有以下的HTML(Fiddle Example):裁剪图像左,右

<header> 
    <div class="wrapper"> 
    <em class="brand"> 
     <img src="http://via.placeholder.com/200x40?text=LOGO"/> 
    </em> 
    <nav class="menu"> 
     <ul class="menu"> 
     <li><a href="#">Home</a></li> 
     <li><a href="#">About</a></li> 
     <li><a href="#">Contact</a></li> 
     </ul> 
    </nav> 
    </div> 
    <div class="slides"> 
    <div class="slide"> 
     <div class="frame"> 
     <img src="http://via.placeholder.com/1200x400?text=Image to Crop" /> 
     </div>  
     <div class="text"> 
     <h2>Our Message</h2> 
     <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit.</p> 
     </div> 
    </div> 
    </div> 
</header> 
<main> 
    Main content 
</main> 

通讯员CSS:

header { 
    text-align: center; 
}  
div.wrapper { 
    margin: 0 auto; 
    max-width: 640px; 
    text-align: left; 
    position: relative; 
}  
em.brand img { 
    display: block; 
}  
ul.menu { 
    list-style: none; 
    margin: 0; 
    padding: 0; 
}  
ul.menu li { 
    display: inline-block; 
    margin: 0; 
    padding: 8px; 
}  
ul.menu li a { 
    text-decoration: none; 
    font-size: 18px; 
    color: white; 
}  
em { 
    border: 1px solid red; 
    position: absolute; 
    z-index: 2000; 
}  
nav { 
    position: absolute; 
    z-index: 2000; 
    right: 0; 
}  
.slides { 
    width: 100%; 
    position: relative; 
}  
.slide .frame img { 
    width: 100%; 
    margin: 0 -100px; 
}  
.slide .text { 
    position: absolute; 
    text-align: center; 
    top: 80px; 
    width: 100%; 
}  
.slide .text h2 { 
    color: white; 
    font-size: 40px; 
    margin: 8px; 
}  
.slide .text p { 
    color: white; 
    font-size: 20px; 
    margin: 8px; 
}  
main { 
    border: 1px solid red; 
    font-size: 20px; 
} 

使用媒体查询我所需要的,有时候,通过裁剪调整图像它在左/右或底部/顶部:

.slide .frame img { 
    width: 100%; 
    margin: 0 -100px; 
}  

这并不改变图像。它只会改变它,如果我尝试上/下:

.slide .frame img { 
    width: 100%; 
    margin: -100px 0; 
}  

任何想法为什么?

您必须设置负利润率图像的容器,并设置图像宽度:100%

.slides { 
    width: 100%; 
    position: relative; 
    overflow: hidden; // so the "negative" part is not visible 
} 
.slide .frame { 
    margin: 0 -100px; 
}  
.slide .frame img { 
    width: 100%; 
} 

但是,也许你应该图像作为背景,并使用属性background-size: cover;background-position: center;

+0

我不使用背景大小和位置的原因是因为这是一个滑块,标题和文本随滑块图像而改变。所以我想将这些内容分组在一起。是否有意义? –

+0

我想这是一个选项。但我总是优先考虑制作文本文本(但如果它不是您想要被搜索引擎编入索引的网站,那么我认为它是有道理的) –