简体   繁体   English

div周围的CSS3渐变边框

[英]CSS3 gradient border around div

Is it possible to create such border around div using pure CSS, or do I have to use image for this? 是否可以使用纯CSS在div周围创建这样的边框,还是我必须为此使用图像?

边界

I recommend using border-image property 我建议使用border-image属性

 .top-to-bottom { border-bottom: 10px solid trasparent; border-width: 10px; border-style: solid; -webkit-border-image: -webkit-gradient(linear, 0 0, 0 100%, from(black), to(rgba(0, 0, 0, 0))) 1 100%; -webkit-border-image: -webkit-linear-gradient(#FBCDEA, rgba(0, 0, 0, 0)) 1 1; -moz-border-image: -moz-linear-gradient(#FBCDEA, rgba(0, 0, 0, 0)) 1 1; -o-border-image: -o-linear-gradient(#FBCDEA, rgba(0, 0, 0, 0)) 1 1; border-image: linear-gradient(to bottom, #FBCDEA, rgba(0, 0, 0, 0)) 1 1; height: 100px; width: 97%; border-top: 10px solid #FBCDEA; } .bottom-to-top { border-top: 10px solid trasparent; border-width: 10px; border-style: solid; -webkit-border-image: -webkit-gradient(linear, 0 100%, 0 0, from(#FBCDEA), to(rgba(0, 0, 0, 0))) 1 1; -webkit-border-image: -webkit-linear-gradient(bottom, black, rgba(0, 0, 0, 0)) 1 1; -moz-border-image: -moz-linear-gradient(bottom, #FBCDEA, rgba(0, 0, 0, 0)) 1 1; -o-border-image: -o-linear-gradient(bottom, #FBCDEA, rgba(0, 0, 0, 0)) 1 1; border-image: linear-gradient(to top, #FBCDEA, rgba(0, 0, 0, 0)) 1 1; border-bottom: 10px solid #FBCDEA; height: 100%; width: 98% } 
  <div class="bottom-to-top"> <div class="top-to-bottom"> </div> </div> 

Since you want to do pure css , here's one way: 既然您想做纯CSS ,这是一种方法:

 .dblgradbox { margin: auto; padding: 15px; width: 275px; height: 200px; border: 15px solid transparent; border-top: 10px solid transparent; border-image: linear-gradient(to bottom, transparent, #FBCDEA) 3 100%; box-shadow: 0 15px 0 0 #FBCDEA, 0 -5px 0 0 #F7FCFF, inset 0px 15px 0 0 #FBCDEA; background-image: linear-gradient(#FBCDEA, transparent), linear-gradient(#FBCDEA, transparent); background-size: 15px 100%; background-position: 0 0, 100% 0; background-repeat: no-repeat; border-radius: 7px; } 
 <div class="dblgradbox"> x3ns </div> 

See if "Full Page" after running snippet. 运行代码段后,是否查看“整页”。 I didn't include any cross-browser properties as this is an example. 我没有包括任何跨浏览器属性,因为这是一个示例。

This method works by normally applying a gradient border, and the using a box-shadow inset technique to aid in completing the effect within the element - thus also a padding is required to fit content within. 此方法通常通过应用渐变边框并使用盒阴影插入技术来帮助完成元素内的效果而起作用-因此也需要填充以适合其中的内容。 The background-image only display two gradient bars on both sides of inset. 背景图像仅在插图的两侧显示两个渐变条。

maybe so? 可能是这样?

 *{ box-sizing: border-box; } .wrap{ width: 300px; height: 300px; padding: 20px; margin: 25px auto; border-radius: 10px; background: rgb(254,249,253); /* Old browsers */ background: -moz-linear-gradient(top, rgb(254,249,253) 0%, rgb(253,230,246) 50%, rgb(253,204,234) 100%); /* FF3.6+ */ background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,rgb(254,249,253)), color-stop(50%,rgb(253,230,246)), color-stop(100%,rgb(253,204,234))); /* Chrome,Safari4+ */ background: -webkit-linear-gradient(top, rgb(254,249,253) 0%,rgb(253,230,246) 50%,rgb(253,204,234) 100%); /* Chrome10+,Safari5.1+ */ background: -o-linear-gradient(top, rgb(254,249,253) 0%,rgb(253,230,246) 50%,rgb(253,204,234) 100%); /* Opera 11.10+ */ background: -ms-linear-gradient(top, rgb(254,249,253) 0%,rgb(253,230,246) 50%,rgb(253,204,234) 100%); /* IE10+ */ background: linear-gradient(to bottom, rgb(254,249,253) 0%,rgb(253,230,246) 50%,rgb(253,204,234) 100%); /* W3C */ filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#fef9fd', endColorstr='#fdccea',GradientType=0 ); /* IE6-9 */ } .wrap div{ width: 100%; height: 100%; padding: 20px; } .wrap .inner{ background: rgb(253,204,234); /* Old browsers */ background: -moz-linear-gradient(top, rgb(253,204,234) 0%, rgb(253,230,246) 50%, rgb(254,249,253) 100%); /* FF3.6+ */ background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,rgb(253,204,234)), color-stop(50%,rgb(253,230,246)), color-stop(100%,rgb(254,249,253))); /* Chrome,Safari4+ */ background: -webkit-linear-gradient(top, rgb(253,204,234) 0%,rgb(253,230,246) 50%,rgb(254,249,253) 100%); /* Chrome10+,Safari5.1+ */ background: -o-linear-gradient(top, rgb(253,204,234) 0%,rgb(253,230,246) 50%,rgb(254,249,253) 100%); /* Opera 11.10+ */ background: -ms-linear-gradient(top, rgb(253,204,234) 0%,rgb(253,230,246) 50%,rgb(254,249,253) 100%); /* IE10+ */ background: linear-gradient(to bottom, rgb(253,204,234) 0%,rgb(253,230,246) 50%,rgb(254,249,253) 100%); /* W3C */ filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#fdccea', endColorstr='#fef9fd',GradientType=0 ); /* IE6-9 */ } .wrap .item{ background: #fff; } 
 <div class="wrap"> <div class="inner"> <div class="item"></div> </div> </div> 

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM