CSS中的虚线背景叠加效果
Dotted background overlay effect in CSS
我想在这个网站上实现背景效果:
http://mountaintheme.com/themeforest/mountain/home.html
背景图片似乎覆盖了点覆盖之类的东西。
有没有办法只用 CSS 来创建这种效果?
Here's 一种方法。
<body>
<div id="overlay">
image
</div>
<div id="page">
<div id="content">
....
基本上,您在页面容器之外添加一个容器。
给它加一个固定的位置,给它加一个伪元素:after,给它配个背景图。
有点晚了,但这是一个仅使用 CSS 的解决方案,它使用 radial-gradient
.
创建的图案来创建点状叠加层
.image {
width: 800px;
height: 600px;
position: relative;
background: url('https://upload.wikimedia.org/wikipedia/commons/6/6e/Rathong_from_Zemathang2.jpg');
background-size: cover;
}
.image:after {
content: '';
display: block;
position: absolute;
left: 0;
right: 0;
top: 0;
bottom: 0;
background: rgba(127, 127, 127, 0.5);
background-image: radial-gradient(black 33%, transparent 33%);
background-size: 2px 2px;
}
<div class="image"></div>
这是我的做法https://jsfiddle.net/soumyabg/wefLyrhp/
非常简单和纯粹的 CSS 解决方案。问题是实际图像是 <a>
标签的背景(带有 display:block
),而 <img>
是点覆盖(其大小应在 CSS 中定义) .
HTML:
<div class="image-container">
<a class="dotm" href="#">
<img src="http://s14.directupload.net/images/111129/44ga9qid.png" alt="dotm" title="dotm" class="dotm-overlay">
</a>
</div>
CSS:
.dotm {
display: block;
background: url(https://media.giphy.com/media/SOoaHiWfwZyfu/giphy.gif) no-repeat; /* change with the image URL */
background-size: cover;
}
.dotm-overlay {
background: url(http://s14.directupload.net/images/111129/44ga9qid.png);
width: 100%;
height: 400px; /*height of the image*/
}
输出:
您可以仅使用 css 背景属性来实现:
background-image: radial-gradient(black 50%, transparent 50%);
background-size: 4px 4px;
假设您有一个 ID 为“bg”的对象,此 css class 将添加小的虚线背景:
#bg {
background-image: radial-gradient(#000 10%, transparent 10%);
background-size: 15px 15px;
background-color: #EEE;
}
您可以通过将黑色 (#000) 替换为任何颜色来更改圆点颜色,通过替换 #EEE 来更改背景颜色。
要调整点的大小,请使用 10% 和 15px。
我想在这个网站上实现背景效果: http://mountaintheme.com/themeforest/mountain/home.html
背景图片似乎覆盖了点覆盖之类的东西。
有没有办法只用 CSS 来创建这种效果?
Here's 一种方法。
<body>
<div id="overlay">
image
</div>
<div id="page">
<div id="content">
....
基本上,您在页面容器之外添加一个容器。 给它加一个固定的位置,给它加一个伪元素:after,给它配个背景图。
有点晚了,但这是一个仅使用 CSS 的解决方案,它使用 radial-gradient
.
.image {
width: 800px;
height: 600px;
position: relative;
background: url('https://upload.wikimedia.org/wikipedia/commons/6/6e/Rathong_from_Zemathang2.jpg');
background-size: cover;
}
.image:after {
content: '';
display: block;
position: absolute;
left: 0;
right: 0;
top: 0;
bottom: 0;
background: rgba(127, 127, 127, 0.5);
background-image: radial-gradient(black 33%, transparent 33%);
background-size: 2px 2px;
}
<div class="image"></div>
这是我的做法https://jsfiddle.net/soumyabg/wefLyrhp/
非常简单和纯粹的 CSS 解决方案。问题是实际图像是 <a>
标签的背景(带有 display:block
),而 <img>
是点覆盖(其大小应在 CSS 中定义) .
HTML:
<div class="image-container">
<a class="dotm" href="#">
<img src="http://s14.directupload.net/images/111129/44ga9qid.png" alt="dotm" title="dotm" class="dotm-overlay">
</a>
</div>
CSS:
.dotm {
display: block;
background: url(https://media.giphy.com/media/SOoaHiWfwZyfu/giphy.gif) no-repeat; /* change with the image URL */
background-size: cover;
}
.dotm-overlay {
background: url(http://s14.directupload.net/images/111129/44ga9qid.png);
width: 100%;
height: 400px; /*height of the image*/
}
输出:
您可以仅使用 css 背景属性来实现:
background-image: radial-gradient(black 50%, transparent 50%);
background-size: 4px 4px;
假设您有一个 ID 为“bg”的对象,此 css class 将添加小的虚线背景:
#bg {
background-image: radial-gradient(#000 10%, transparent 10%);
background-size: 15px 15px;
background-color: #EEE;
}
您可以通过将黑色 (#000) 替换为任何颜色来更改圆点颜色,通过替换 #EEE 来更改背景颜色。
要调整点的大小,请使用 10% 和 15px。