当前位置: 首页 > 面试题库 >

CSS锯齿形边框和带纹理的背景

司空福
2023-03-14
问题内容

我一直在研究带有锯齿形边框的标头。一种方法是使用图像制作锯齿形效果。

(1)有没有办法在不使用图像的情况下在CSS中创建实用的跨浏览器之字形边框?

我还试图在此标头上放置带纹理的背景,该背景延伸到之字形。但是,标头的垂直大小可能会发生变化,并且我无法将标头实现为单个图像。

如果我尝试向曲折边缘和标头元素添加纹理,则很有可能纹理将不同步。

(2)关于实现带纹理的背景并延伸到锯齿形而不偏离同步的任何想法?

我的[旧]代码(以及纹理)在。

body {

  padding: 20px;

}



header {

  width: 240px;

  background-color: #BCED91;

}



header:after {

  content: " ";

  display: block;

  position: relative;

  width: 240px;

  bottom: -15px;

  height: 15px;

  background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACgAAAAPCAYAAACWV43jAAAAw0lEQVRIx83RsQ3CMBCF4T83AZKLVOmyBa1HSIlXwKySGaDOBClZAToWQIpETQONyxAS+2J4pe9knd5X9EP7QicPYAsUwBnYaHwqSsd1QGmNv1rjL0AZ3pJTKDTorPGnsUE/tDvg+KsG70D96TiAMKvDbtYDO6Cyxt++LYadKpY8hthNtTaVGHLRJJ3R5mJy0SbVJp9D7FJaSyWXNUk1yGVt0lTyMWK3ZmtLySUnaQy55CZdSi7AHmis8U/+JOGWBji8AaYPVy6VELZvAAAAAElFTkSuQmCC) repeat-x;

}



img {

  margin-top: 50px;

}


<header>

  <br />

  <br />

  <br />

  <br />

</header>



<img src="http://i.imgur.com/qKsVr.png" />

编辑#1:

感谢Ana提供的代码。我接受并改进了它。

我认为不可能有一个一致的背景。


问题答案:

如果要使用border-image,那么它不是跨浏览器的解决方案,因为IE不支持它。

另外,即使当前的所有浏览器版本(除IE9之外)都支持CSS渐变(这将允许您获得 Zig-
zag模式
)和border- image,上次我检查(这是几个月前,所以最好再次进行测试),渐变border- image仅适用于WebKit。另外,我不认为即使在WebKit中,它也可以用于多个渐变(因为您只能设置一个边框图像,而一个渐变就是一幅图像),并且曲折图案需要两个渐变。

CSS之字形模式的代码为:

background: linear-gradient(#BCED91 49%, transparent 49%),
        linear-gradient(-45deg, white 33%, transparent 33%) 0 50%,
        white linear-gradient(45deg, white 33%, #BCED91 33%) 0 50%;
    background-repeat: repeat-x;
    background-size: 1px 100%, 40px 40px, 40px 40px;

如果您想要一个与此下方同步的纹理,则必须确保它以相同的间隔重复(40px,但您也可以使用20px)。



 类似资料:
  • 本文向大家介绍请使用CSS画一个带锯齿形边框圆圈相关面试题,主要包含被问及请使用CSS画一个带锯齿形边框圆圈时的应答技巧和注意事项,需要的朋友参考一下 https://stackoverflow.com/questions/51697207/zig-zag-border-for-a-circle

  • 问题内容: 我的div旋转了45度,上面有边框图像。 在chrome和safari中,它效果很好。 在Firefox中,讨厌的反锯齿线出现在旋转div的边缘周围及其边界图像之间。 这是简单的HTML: 这是CSS: 这是一个JSFiddle。在Firefox中查看它,了解我的意思: 我已经看到了在div周围添加1px透明轮廓的技巧,如果在这种情况下没有边框图像,该技巧将起作用。 有人遇到过这种情况

  • 我试着让两个div相邻,它们之间有一个对角线空间。我在stackoverflow上看到过多个关于对角线div的教程,但它们都是通过为带有纯色的div使用两个边框并使用它们创建的对角线来实现的。但我想要图片/背景图像,而不是纯色。甚至可能还有其他内容,比如在对角线下的文本。当使用边框时,这是不可能的,因为边框在div之外。(floatright隐藏溢出或其他内容。) 这里有人能给我一个提示如何实现这

  • 在学习渲染的旅途中,你可能会时不时遇到模型边缘有锯齿的情况。这些锯齿边缘(Jagged Edges)的产生和光栅器将顶点数据转化为片段的方式有关。在下面的例子中,你可以看到,我们只是绘制了一个简单的立方体,你就能注意到它存在锯齿边缘了: 可能不是非常明显,但如果你离近仔细观察立方体的边缘,你就应该能够看到锯齿状的图案。如果放大的话,你会看到下面的图案: 这很明显不是我们想要在最终程序中所实现的效果

  • 我正在绘制一个纹理四边形,但使用的纹理是以前绑定的纹理,即使我试图绑定一个新纹理。 在GuiHandler中创建纹理。Java语言 渲染代码 有人知道为什么使用先前绑定的纹理而不是正确的纹理吗?P、 我正在使用LWJGL

  • 问题内容: 我们的作业要求我们使用锯齿状数组来存储二维布尔数组的值。锯齿状数组是否有内置的Java类,还是我必须使用ArrayLists数组手动创建它? 问题答案: 在Java中,二维数组是一维数组对象的数组。每个1D数组的长度可以不同,这意味着您可以立即使用锯齿状的数组。 例如,以下是完全有效的Java,并输出: