我想要一个div,在这个div里面必须是一个有颜色的字段 . 所以我想要div例如200px x 200px并设置背景颜色:灰色,其尺寸为100px x 100px,并从位置50px 50px开始 .
请使用以下代码查看此代码段:
div{
background-color: gray;
background-size: 100px 100px;
background-position: 50px 50px;
min-width:200px!important;
min-height:200px!important;
max-width:200px!important;
max-height:200px!important;
padding:50px;
}
<div>some text</div>
因此,当您看到背景颜色填充所有div宽度和高度时 . 这可能使背景只填充50%吗?
注意:红色区域应该是透明的 .
6 回答
我们可以用linear gradient,background-size和background-position来实现这个效果
所有这些线性渐变确实给我们一个背景颜色,可以像背景图像一样进行操作 .
calc将背景的大小精确缩小100px,居中的div周围的透明空间宽度为50px .
完整的例子
第二个div显示div的真实大小,
20vw
宽度和高度显示div如何重新调整大小 .其他答案提供了很好的解决方法 . 这是冷酷的事实:
您无法为半个元素的内容区域设置背景颜色
背景颜色适用于元素内容区域 . 您无法将背景颜色应用于元素内容区域的一半 .
Mozilla解释了这个:
元素的内容区域只有一种背景颜色 . 颜色可以是透明的,可以是继承的,而不是定义的,或者完全覆盖的 - 但是,总是有一个,而且只能有一个 .
浏览器开发人员工具中的检查元素将帮助您熟悉这一点 .
您要创建的效果有许多变通方法,包括嵌套元素,伪元素和粗边框 .
您只需使用具有所需厚度的
border
即可实现此目的:http://codepen.io/anon/pen/XjpbNJ
干得好..
background-size和background-position都只能用于图像,因此不能仅使用颜色 .
我会将div包装在另一个中并执行此操作:
JSFiddle
如果这不是一个选项,你也可以使用图像,并定位 .
使用伪元素模拟所需象限中的着色 .