Je suis un grand partisan de l'utilisation minimale d'images et je me demandais si quelqu'un avait une tactique (ou s'il était possible) de créer ce genre de chose avec du CSS statique pur?
http://www.flickr.com/photos/jahimandahalf/6780397612/
Je parle d'un effet d'une ligne apparemment plus maigre et qui s'estompe et de l'effet d'ombre en dessous.
Je pensais qu'il serait peut-être possible de faire un tour de forme CSS avec celui-ci comme les triangles:
http://css-tricks.com/snippets/css/css-triangle/
Ou peut-être avec une rotation sur Box-Shadow en utilisant 'transform':
zenelements.com/blog/css3-transform/
Des idées?
Vous pouvez utiliser les arrêts de CSS3 et le pseudo-élément :after
pour obtenir un tel effet. L'astuce consiste à ajouter une bordure à l'élément <hr>
en utilisant le pseudo-élément :after
et à la positionner au centre du dégradé initial avec une couleur douce qui se termine par le dégradé.
Voici un rapide demo , et un autre demo en utilisant de la couleur.
hr {
height: 1px;
margin: 50px 0;
background: -webkit-gradient(linear, 0 0, 100% 0, from(rgba(0, 0, 0, 0)), color-stop(0.5, #333333), to(rgba(0, 0, 0, 0)));
background: -webkit-linear-gradient(left, rgba(0, 0, 0, 0), #333333, rgba(0, 0, 0, 0));
background: -moz-linear-gradient(left, rgba(0, 0, 0, 0), #333333, rgba(0, 0, 0, 0));
background: -o-linear-gradient(left, rgba(0, 0, 0, 0), #333333, rgba(0, 0, 0, 0));
background: linear-gradient(left, rgba(0, 0, 0, 0), #333333, rgba(0, 0, 0, 0));
border: 0;
}
hr:after {
display: block;
content: '';
height: 30px;
background-image: -webkit-gradient(radial, 50% 0%, 0, 50% 0%, 116, color-stop(0%, #cccccc), color-stop(100%, rgba(255, 255, 255, 0)));
background-image: -webkit-radial-gradient(center top, farthest-side, #cccccc 0%, rgba(255, 255, 255, 0) 100%);
background-image: -moz-radial-gradient(center top, farthest-side, #cccccc 0%, rgba(255, 255, 255, 0) 100%);
background-image: -o-radial-gradient(center top, farthest-side, #cccccc 0%, rgba(255, 255, 255, 0) 100%);
background-image: radial-gradient(farthest-side at center top, #cccccc 0%, rgba(255, 255, 255, 0) 100%);
}
<hr>
Ok, alors j'ai répondu à ma propre question mais j'ai lu les forums de Stackoverflow et cela semble être acceptable (sinon encouragé!)
Alors...
HTML:
<html>
<head>
<TITLE>TEST</TITLE>
<link rel="stylesheet" type="text/css" href="test.css" />
</head>
<body>
<div id="wrap">
<div id="gradient">
</div>
</div>
</body>
</html>
CSS:
#wrap
{
overflow:hidden;
height:10px;
width:600px;
height:20px;
margin:auto;
margin-top:200px;
}
#gradient
{
height:20px;
width:580px;
margin:auto;
margin-top:-11px;
background: -moz-radial-gradient(center, ellipse cover, rgba(10,10,10,1) 0%, rgba(8,8,8,1) 19%, rgba(3,3,3,0) 80%, rgba(1,1,1,0) 100%); /* FF3.6+ */
background: -webkit-gradient(radial, center center, 0px, center center, 100%, color-stop(0%,rgba(10,10,10,1)), color-stop(19%,rgba(8,8,8,1)), color-stop(80%,rgba(3,3,3,0)), color-stop(100%,rgba(1,1,1,0))); /* Chrome,Safari4+ */
background: -webkit-radial-gradient(center, ellipse cover, rgba(10,10,10,1) 0%,rgba(8,8,8,1) 19%,rgba(3,3,3,0) 80%,rgba(1,1,1,0) 100%); /* Chrome10+,Safari5.1+ */
background: -o-radial-gradient(center, ellipse cover, rgba(10,10,10,1) 0%,rgba(8,8,8,1) 19%,rgba(3,3,3,0) 80%,rgba(1,1,1,0) 100%); /* Opera 12+ */
background: -ms-radial-gradient(center, ellipse cover, rgba(10,10,10,1) 0%,rgba(8,8,8,1) 19%,rgba(3,3,3,0) 80%,rgba(1,1,1,0) 100%); /* IE10+ */
background: radial-gradient(center, ellipse cover, rgba(10,10,10,1) 0%,rgba(8,8,8,1) 19%,rgba(3,3,3,0) 80%,rgba(1,1,1,0) 100%); /* W3C */
filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#0a0a0a', endColorstr='#00010101',GradientType=1 ); /* IE6-9 fallback on horizontal gradient */
}
Afin de reproduire cette règle horizontale, vous pouvez utiliser un dégradé linéaire CSS3. Créez simplement un div avec une hauteur d'environ 3px et appliquez le code CSS suivant (modifiez les couleurs si nécessaire):
background: #ffffff; /* Old browsers */
background: -moz-linear-gradient(left, #ffffff 0%, #2989d8 25%, #207cca 75%, #ffffff 100%); /* FF3.6+ */
background: -webkit-gradient(linear, left top, right top, color-stop(0%,#ffffff), color-stop(25%,#2989d8), color-stop(75%,#207cca), color-stop(100%,#ffffff)); /* Chrome,Safari4+ */
background: -webkit-linear-gradient(left, #ffffff 0%,#2989d8 25%,#207cca 75%,#ffffff 100%); /* Chrome10+,Safari5.1+ */
background: -o-linear-gradient(left, #ffffff 0%,#2989d8 25%,#207cca 75%,#ffffff 100%); /* Opera 11.10+ */
background: -ms-linear-gradient(left, #ffffff 0%,#2989d8 25%,#207cca 75%,#ffffff 100%); /* IE10+ */
background: linear-gradient(left, #ffffff 0%,#2989d8 25%,#207cca 75%,#ffffff 100%); /* W3C */
filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#ffffff', endColorstr='#ffffff',GradientType=1 ); /* IE6-9 */
Gardez à l'esprit que filter
ne prend pas en charge les arrêts de couleur, vous pouvez donc souhaiter une image de repli pour <IE10.
Construisez votre propre dégradé CSS3 ici: http://www.colorzilla.com/gradient-editor/
Ce code crée une heure normale mais la différence est qu’il aura les deux fin avec effet de fondu (dégradé du noir au bleu)
hr{
border-top-color: black;
margin-bottom: 25px;
width: 80%;
}
hr::before{
display: block;
margin-left: -10%;
margin-top: -1px;
content:"";
background: linear-gradient(to left, black, blue);
width: 10%;
height: 1px;
}
hr::after{
display: block;
margin-left: 100%;
margin-top: -1px;
content:"";
background: linear-gradient(to right, black, blue);
width: 10%;
height: 1px;
}