Existe-t-il un moyen de limiter la longueur d'une bordure. J'en ai un <div>
qui a une bordure inférieure, mais je veux ajouter une bordure à gauche <div>
qui ne s'étire que sur la moitié du chemin.
Existe-t-il un moyen de le faire sans ajouter d'éléments supplémentaires sur la page?
Le contenu généré par CSS peut résoudre ce problème pour vous:
(note - la
content: "";
déclaration est nécessaire pour que le pseudo-élément soit rendu)la source
Les
:after
rochers :)Si vous jouez un peu, vous pouvez même définir votre élément de bordure redimensionné pour qu'il apparaisse centré ou n'apparaisse que s'il y a un autre élément à côté (comme dans les menus). Voici un exemple avec un menu:
Afficher l'extrait de code
la source
Cependant, nous pouvons imiter l'effet de bordure et contrôler son
width
etheight
comme nous le voulons avec d'autres façons.Avec CSS (Linear Gradient):
Nous pouvons utiliser
linear-gradient()
pour créer une ou des images d'arrière-plan et contrôler sa taille et sa position avec CSS afin qu'elle ressemble à une bordure. Comme nous pouvons appliquer plusieurs images d'arrière-plan à un élément, nous pouvons utiliser cette fonctionnalité pour créer plusieurs images de type bordure et appliquer sur différents côtés de l'élément. Nous pouvons également couvrir la zone disponible restante avec une couleur unie, un dégradé ou une image de fond.HTML requis:
Tout ce dont nous avons besoin, c'est d'un seul élément (ayant éventuellement une certaine classe).
Pas:
linear-gradient()
.background-size
pour régler lewidth
/height
des images créées ci-dessus afin qu'elles ressemblent à une bordure.background-position
pour ajuster la position (commeleft
,right
,left bottom
etc.) des frontières au- dessus créé (s).CSS nécessaire:
Exemples:
Avec,
linear-gradient()
nous pouvons créer des bordures de couleur unie ainsi que des dégradés. Voici quelques exemples de bordures créées avec cette méthode.Exemple avec bordure appliquée sur un seul côté:
Afficher l'extrait de code
Exemple avec bordure appliquée sur deux côtés:
Afficher l'extrait de code
Exemple avec bordure appliquée sur tous les côtés:
Afficher l'extrait de code
Capture d'écran:
la source
pour les lignes horizontales, vous pouvez utiliser la balise hr:
mais il n'est pas possible de limiter la hauteur de la bordure. seule hauteur d'élément.
la source
height
. Pour remplacer la bordure de cellule dans une étiquette TD, utilisez<td>your content<hr/></td>
.Les bordures sont définies par côté uniquement, pas en fractions de côté. Donc, non, vous ne pouvez pas faire ça.
De plus, un nouvel élément ne serait pas non plus une bordure, il imiterait seulement le comportement que vous souhaitez - mais ce serait quand même un élément.
la source
Une autre façon de procéder consiste à utiliser border-image en combinaison avec un gradient linéaire.
jsfiddle: https://jsfiddle.net/u7zq0amc/1/
Prise en charge du navigateur: IE: 11+
Chrome: tous
Firefox: 15+
Pour une meilleure prise en charge, ajoutez également des préfixes de fournisseur.
caniuse border-image
la source
C'est une astuce CSS, pas une solution formelle. Je laisse le code avec la période noire car cela m'aide à positionner l'élément. Ensuite, coloriez votre contenu (couleur: blanc) et (margin-top: -5px environ) pour faire comme si la période n'était pas là.
la source
Une autre solution consiste à utiliser une image d'arrière-plan pour imiter l'apparence d'une bordure gauche
Vous devrez peut-être modifier pour IE (comme d'habitude), mais cela vaut la peine si c'est la conception que vous recherchez.
la source
Vous ne pouvez définir qu'une seule bordure par côté. Il faudrait ajouter un élément supplémentaire pour ça!
la source