Est-il possible de faire une ligne sinueuse?
Si je voulais faire une ligne horizontale, je ferais ceci:
<style>
#line{
width:100px;
height:1px;
background-color:#000;
}
</style>
<body>
<div id="line"></div>
Si je voulais faire une ligne verticale, je ferais ceci:
#line{
width:1px;
height:100px;
background-color:#000;
}
</style>
<body>
<div id="line"></div>
Une ligne courbe est plus compliqué, mais possible à l'aide de border-radius
et habillage de l'élément:
<style>
.curve{
width:100px;
height:500px;
border:1px #000 solid;
border-radius:100%;
}
#wrapper{
overflow:hidden;
width:40px;
height:200px;
}
</style>
<body>
<div id="wrapper">
<div class="curve"></div>
</div>
</body>
Mais je ne peux même pas imaginer comment je pourrais générer des lignes ondulées! Est-ce même à distance possible en utilisant uniquement css et javascript, car il ne semble pas qu'il sera nécessaire pour pouvoir plus facilement les générer).
remarque:
Comme prévu, compte tenu de vos réponses il n'y a aucun moyen de le faire dans la semelle css...javascript et jquery sont 100% correct pour votre réponse...PAS d'IMAGES PEUT ÊTRE UTILISÉ
un couple de
Comment sur l'utilisation de CSS3 border images?
Vous pourriez être en mesure de faire quelque chose comme ceci à l'aide de plusieurs div est situé à côté les uns des autres, avec une très forte border-radius. Vous pouvez également avoir à cacher le haut/ bas moitiés des éléments selon qu'ils étaient bizarres ou même que vous pouvez le faire avec les CSS.
Pourquoi pas d'images? Même pas le SVG?
parce que l'application que je suis en utilisant pour ce sera à l'utilisateur de créer le squiggle
.curve
éléments collés ensemble?Comment sur l'utilisation de CSS3 border images?
Vous pourriez être en mesure de faire quelque chose comme ceci à l'aide de plusieurs div est situé à côté les uns des autres, avec une très forte border-radius. Vous pouvez également avoir à cacher le haut/ bas moitiés des éléments selon qu'ils étaient bizarres ou même que vous pouvez le faire avec les CSS.
Pourquoi pas d'images? Même pas le SVG?
parce que l'application que je suis en utilisant pour ce sera à l'utilisateur de créer le squiggle
OriginalL'auteur Ryan Saxe | 2013-06-24
Vous devez vous connecter pour publier un commentaire.
Cette question est assez vieux, mais j'ai trouvé un moyen de le faire sans Javascript, répétitif CSS ou les images.
Comme l'arrière-plan se répéter, vous pouvez utiliser le dégradé linéaire ou radial-gradient de faire plusieurs lignes.
Quelques exemples: http://jsbin.com/hotugu/3/edit?html,css,sortie
HTML:
CSS:
La prise en charge du navigateur est correct (http://caniuse.com/#feat=css-gradients), c'est à dire 10 fonctionnera probablement, toutefois, les choses se dégrader à petites échelles dans les différents navigateurs. Si vous souhaitez travailler sur de très petites échelles constante, vous pouvez faire de la ligne sur une plus grande échelle, puis à l'échelle vers le bas ("transform: scale(x);").
Il devrait également être très rapide, linéaire-les gradients sont rendus sur le GPU en chrome, de sorte qu'il devrait être presque aussi rapide que possible.
C'est ingénieux! J'avais besoin d'un moyen de simuler
text-decoration: underline wavy red;
de la croix-navigateur, et a réussi à s'adapter à cette réponse et l'utilisation:before
et:after
pseudo-éléments afin d'obtenir un substitut viable. Merci!Utilisez simplement la décoration:ondulé maintenant => developer.mozilla.org/en-US/docs/Web/CSS/text-decoration-style
OriginalL'auteur yeerk
EDIT: compte tenu de l'exigence de n images/data uri.
Vous pouvez également fourrer tout un tas de border-radius éléments ensemble, en alternance avec le haut/bas ou gauche/droite bords désactivé. J'ai généralisé cette dans une fonction qui ajoute un élément.
Javascript, où squigglecount est le nombre de "gribouillis". Vous pourriez être généralisé à une largeur réelle si vous le souhaité.
http://jsfiddle.net/V7QEJ/1/
CSS:
Ancienne (avec des images):
Il y a déjà un tas de réponses, mais voici une façon simple de faire une verticale de la ligne sinueuse, semblable à de Lawson réponse.
Fondamentalement, vous utilisez background-image et un data-uri d'une ligne sinueuse de le faire. Je n'aurais probablement pas l'utiliser pour quelque chose, mais c'est intéressant, la pensée de l'exercice. Il y a un tas de données uri générateurs que vous pouvez utiliser en ligne pour changer vos propres images.
http://jsfiddle.net/zadP7/
J'ai ajouté une solution de rechange n'utilisez pas d'images, si c'est de l'aide supplémentaire pour vous.
La réponse est le meilleur encore, bien que ne peut fonctionner de façon répétitive, il donne beaucoup de place! Je vais l'accepter puisque compliqué, non de répéter tilde peut clairement être fait avec une image après avoir vu ces réponses
Voici mon montage pour le mentionné ci-dessus de violon: jsfiddle.net/V7QEJ/188
OriginalL'auteur bfuoco
Si vous souhaitez que le soulignement de texte à une ligne sinueuse, vous pouvez utiliser le code css suivant:
Source: https://developer.mozilla.org/en/docs/Web/CSS/text-decoration-line#example
OriginalL'auteur peq
si vous n'êtes pas à la recherche de quelque chose de vraiment génial, mais juste pour le plaisir, jouer avec plusieurs box-shadow:
http://codepen.io/gcyrillus/pen/mfGdp ou http://codepen.io/gcyrillus/pen/xhqFu
OriginalL'auteur G-Cyr
﹏﹏﹏﹏﹏﹏﹏﹏﹏﹏﹏﹏﹏﹏﹏﹏﹏﹏﹏﹏﹏﹏﹏﹏﹏﹏﹏﹏﹏﹏﹏﹏﹏﹏﹏﹏
& #65103 ; (ondulé bas de ligne)
J'espère que ce n'est pas trop hors sujet - ici est de savoir comment utiliser ces lignes ondulées pour souligner du texte (qui devrait être une commune de cas d'utilisation.)
méthode 1 (arraché de Wulf répondre à un une question relative à la)
(pas vraiment une ligne sinueuse, mais une collection de points, mais semble OK et est magnifiquement simple.)
méthode 2 (inspiré par DanieldD)
à l'aide de & #65103 ; (ondulé bas de ligne) de caractères unicode et absolue /relative positionnement de mettre ce personnage en dessous du texte. Voici une violon
ici c'est "la viande" du code pour le positionnement
OriginalL'auteur mathheadinclouds
Remercier @yeerk pour une solution merveilleuse!
Mais je voudrais suggérer quelques améliorations à son premier variantes à ceux des vagues de ce qui semble être plus triangulaire. Je suggère d'utiliser
:before
et:after
pseudo-éléments au lieu de codé en dur fermé divs.Il peut ressembler à ceci (html):
— où
triangly-line
est une cible décorées élément (et non pas "agité", mais "triangled").Styles (en utilisant MOINS de notation) ressemblera à ceci:
Entraîné CSS (en utilisant les paramètres spécifiés ci-dessus):
OriginalL'auteur lilliputten
Avant il y avait HTML5 et Canvas, il n'y a JavaScript VectorGraphics. Vous pouvez l'essayer si vous voulez dessiner des Cercles, des Ellipses, etc. etc. en pur HTML.
OriginalL'auteur Yuriy Galanter
Au lieu d'utiliser de la frontière, à l'utilisation d'un arrière-plan en mosaïque de l'image.
Je ne pense pas qu'il y est une solution qui est loin sans l'aide d'un fichier graphique et qui fonctionne dans tous les navigateurs.
Si vous êtes courageux, vous pouvez essayer ceci:http://www.html5canvastutorials.com/tutorials/html5-canvas-arcs/
Il permet de dessiner sur le canevas en HTML5, mais il ne fonctionnerait pas sur les anciens navigateurs.
si vous pouvez ajouter beaucoup de html, vous pouvez utiliser ceci:
http://jsfiddle.net/QsM4J/
HTML:
CSS:
Le jsfiddle ne montre pas un tilde pour moi...
Eh bien, c'est plutôt dommage, mais de toute façon que le lien était pour une ancienne version... de toute façon, j'ai mis à jour le lien dans le post pour pointer vers la nouvelle version: jsfiddle.net/QsM4J
OriginalL'auteur Sebastian Meine
Voici une SASS vague générateur de ligne en fonction de la réponse de @yeerk. Si vous voulez triangles, utilisez le générateur ci-dessus par @lilliputten.
OriginalL'auteur Fabian von Ellerts
Si vous êtes à l'aide de Javascript, cela peut être facilement réalisé en utilisant une onde sinusoïdale - c'est ainsi que les langages de programmation ont atteint contrôlable lignes ondulées pour des décennies! Vous devriez être capable de trouver beaucoup d'exemples, mais essentiellement, vous venez de faire une boucle avec une incrémentation de x valeur et d'appliquer la fonction sinus sin(). C'est cool pour faire des économiseurs d'écran dans les années 90 et les animer, etc.
OriginalL'auteur Sam