这是我的代码:
<div style="width: 75px; height: 75px; text-align: center; overflow: hidden;">
<img src"myimg.png"/>
</div>
我想在此div中从左右两侧裁剪。
但它只能从右边裁剪一部分。
我想做这样的事情(也适用于IE 8-10)。
提前致谢!!!
答案 0 :(得分:2)
为什么不将图像设置为背景?
<强> HTML 强>
<div id="mydiv" style="width: 75px; height: 75px; text-align: center; overflow: hidden;">
</div>
<强> CSS 强>
#mydiv
{
background-image:url('myimg.png');
background-repeat:no-repeat;
background-attachment:fixed;
background-position:center;
}
答案 1 :(得分:2)
您可以按原样保留HTML,并将图片设为position:relative
和位置left:-50%
(或margin-left:-50%
)。
您的HTML:
<div id="cropper">
<img src="http://lorempixel.com/output/sports-q-c-900-600-3.jpg" />
</div>
你的CSS:
#cropper{
width:450px;
height:600px;
overflow:hidden;
}
img{
position:relative;
left:-50%;
}
修改强>
要准确地将图像置于任何div
尺寸中心,您需要以像素为单位定位图像,而不是以百分比为单位,除非容器的大小恰好是图像大小的一半。因此,图像大小为900x600像素的最终CSS将是:
img{
position:relative;
left:-450px;
}
答案 2 :(得分:1)
使用<img>
无法实现您的目标。但是,您可以使用“CSS Sprite”技巧:
<div style="width: 75px; height: 75px; text-align: center; overflow: hidden;
background: url(myimg.png) no-repeat center center">
</div>
没有jsFiddle,对不起,因为我没有你的形象。
答案 3 :(得分:0)
您只需将背景图片设置为div
<强> HTML 强>
<div class='myDiv'></div>
<强> CSS 强>
.myDiv {
width: 75px;
height: 75px;
background: url('myimg.jpg') no-repeat -123px 0px;
}
将-123px
调整到应该开始裁剪的正确左偏移量。
编辑:jsFiddle
答案 4 :(得分:0)
这里有一个针对类似问题提出的解决方案:http://codepen.io/gcyrillus/pen/BdtEj
/* see demo : http://codepen.io/gcyrillus/pen/BdtEj , to play with and understand */
parent {
line-height:equals to height;
text-align:center;
}
parent img {
vertical-align:middle;
margin:-100%;
}
它是关于剪裁你的图像。你有那个古老而实用的CSS规则:clip:rect(); http://www.w3.org/wiki/CSS/Properties/clip有这个目的。
或者使用技巧(因为您喜欢使用CSS)将虚拟图像zize减少为null,因此水平和垂直居中并不重要。 http://codepen.io/gcyrillus/pen/BdtEj
答案 5 :(得分:0)
这是播放div的小技巧...... 把你想要的div放在另一个div里面.. 将外部div的溢出设置为隐藏 他们只需移动内部div,因为你想使用margin_left,right,top,down属性来裁剪它......
<div style="overflow:hidden;">
<div id="myDiv" style="overflow:hidden;margin-top:-30px"></div>
</div>
简单:)
答案 6 :(得分:0)
您几乎可以使用 clip-path 裁剪任何内容:
applicationIdSuffix ".debug"
答案 7 :(得分:-1)
有更多可能的解决方案: 使用容器div并在图像上应用负位置。或者您可以将图像设置为div的背景,例如,您可以使用背景位置。
答案 8 :(得分:-2)
以下是根据您的要求提供的 DEMO 链接,即。
<div class="mainDiv">
<div class="green"></div>
</div>
.mainDiv {
margin:0 auto;
border:1px solid #000;
width:700px;
height:500px;
text-align:center;
}
.mainDiv .green {
width:100px;
height:100px;
background-color:red;
display:inline-block;
}
答案 9 :(得分:-2)
只要您知道图像的宽度,就可以使用图像和任何元素,css定位。
将position:relative
添加到div,并将position:absolute
添加到图片上,同时添加left:-204px;top:0;
中图片宽度的一半。
答案 10 :(得分:-3)
尝试margin: 0 auto;
而不是text-align
。