Je me demande quelles options on a en xhtml 1.0 strict pour créer une ligne des deux côtés du texte comme ceci:
Section un ----------------------- Section suivante ----------------------- Section deux
J'ai pensé à faire des choses fantaisistes comme ça:
<div style="float:left; width: 44%;"><hr/></div>
<div style="float:right; width: 44%;"><hr/></div>
Next section
Ou bien, parce que ce qui précède a des problèmes d'alignement (vertical et horizontal):
<table><tr>
<td style="width:47%"><hr/></td>
<td style="vertical-align:middle; text-align: center">Next section</td>
<td style="width:47%"><hr/></td>
</tr></table>
Cela a également des problèmes d'alignement, que je résous avec ce gâchis:
<table><tr>
<td style="border-bottom: 1px solid gray; width: 47%"> </td>
<td style="vertical-align:middle;text-align:center" rowspan="2">Next section</td>
<td style="border-bottom: 1px solid gray; width: 47%"> </td>
</tr><tr>
<td> </td>
<td> </td>
</tr></table>
En plus des problèmes d'alignement, les deux options semblent «floues», et je serais très obligé si vous aviez déjà vu cela auparavant et connaissiez une solution élégante.
.divider
).Réponses:
Je ne sais pas si cela a été compris, mais Flexbox offre une bonne solution:
Voir http://jsfiddle.net/MatTheCat/Laut6zyc/ pour la démo.
Aujourd'hui, la compatibilité n'est pas si mauvaise (vous pouvez ajouter toutes les anciennes syntaxes flexbox) et elle se dégrade gracieusement.
la source
Que diriez-vous:
Découvrez ce JSFiddle .
Vous pouvez utiliser
vw
ou%
pour le rendre réactif .la source
font-size
.La façon de résoudre ce problème sans connaître la largeur et la couleur d'arrière-plan est la suivante:
Structure
CSS
Exemple: http://jsfiddle.net/z8Hnz/
Double ligne
Pour créer une double ligne, utilisez l'une des options suivantes:
1) Espace fixe entre les lignes
Exemple: http://jsfiddle.net/z8Hnz/103/
2) Espace personnalisé entre les lignes
Exemple: http://jsfiddle.net/z8Hnz/105/
Version SASS (SCSS)
Sur la base de cette solution, j'ai ajouté SCSS "avec propriété de couleur" si cela pouvait aider quelqu'un ...
exemple d'utilisation:
la source
Vous pouvez accomplir cela avec :: avant et :: après sans connaître la largeur du conteneur ou la couleur d'arrière-plan, et pour obtenir un meilleur style des sauts de ligne. Par exemple, cela peut être modifié pour créer des lignes doubles, des lignes pointillées, etc.
JSFiddle
Utilisation de CSS et HTML:
Version SCSS:
la source
Essaye ça:
Aperçu en direct sur jsFiddle .
la source
.divider hr
largeur dépend de la longueur du texte. Suggestion:.divider
et les.divider hr
largeurs doivent être spécifiées enem
unités. Pour obtenir lahr
largeur, utilisez (.divider
largeur moins nombre de caractères) / 2.Je viens de rencontrer le même problème, voici une façon de le résoudre:
Cela fonctionne sans définir un arrière-plan sur l'élément de texte, c'est-à-dire qu'il aura l'air bien quel que soit l'arrière-plan derrière lui.
Vous pouvez l'essayer ici: http://jsfiddle.net/88vgS/
la source
METTRE À JOUR: Cela ne fonctionnera pas en utilisant HTML5
Au lieu de cela, consultez cette question pour plus de techniques: Défi CSS, puis-je le faire sans introduire plus de HTML?
J'avais l'habitude
line-height:0
de créer l'effet dans l'en-tête de mon site guerilla-alumnus.comUne autre bonne méthode est sur http://robots.thoughtbot.com/
Il utilise une image de fond et flotte pour obtenir un effet cool
la source
la source
Si vous pouvez utiliser CSS et souhaitez utiliser l'
align
attribut obsolète , un jeu de champs / légende stylé fonctionnera:Le but visé d'un ensemble de champs est de grouper logiquement les champs de formulaire. Comme l'a souligné Willoler, un
text-align: center
style pour ne fonctionnera pas pour leslegend
éléments.align="center"
est obsolète HTML mais il doit centrer le texte correctement dans tous les navigateurs.la source
<legend>
prend les traits d'affichage d'un élémentblock
orinline-block
, car il peut être rembourré et mariné, ce qui signifietext-align:center
que cela ne devrait pas fonctionner ...legend
élément,align="center"
c'est la seule solution que j'ai pu trouver qui centre de manière fiable alegend
.Grille de bootstrap:
HTML:
CSS:
la source
vertical-center
classe n'existe plus dans bootstrap (4.3.1). Pourriez-vous mettre à jour votre réponse pour direalign-items-center
?Vous pouvez simplement utiliser la position relative et définir une hauteur sur le parent
la source
Voici une solution simple avec CSS uniquement, pas de trucs d'arrière-plan ...
HTML:
exemple de violon: https://jsfiddle.net/0Lkj6wd3/
la source
Mal hack ...
la source
Augmenter un poste de 2 ans, mais voici comment j'aborde ces situations en utilisant un seul élément et CSS.
Et voici un violon pour le vérifier: http://jsfiddle.net/sRhBc/ (image aléatoire de Google prise pour la frontière).
Le seul inconvénient de cette approche est qu'elle ne prend pas en charge IE7.
la source
Utilisez simplement
la source
Woohoo mon premier post même si cela fait un an. Pour éviter les problèmes de coloration d'arrière-plan avec les wrappers, vous pouvez utiliser inline-block avec hr (personne ne l'a dit explicitement). L'alignement du texte doit être centré correctement car ce sont des éléments en ligne.
la source
J'utilise un
h1
avec une envergure au milieu.Exemple HTML:
Exemple CSS:
Aussi simple que cela.
la source
span
, vous pouvez envisager d'utiliser undiv
. Il sert le même but, sauf qu'il est naturellement un élément de bloc. :)h1
est un élément en ligne.span
est agréable pour des trucs d'emballage, mais la raison pour laquelle je préfère undiv
dans ce cas, parce que Youri utiliser les CSS pour définir l'span
àdisplay:block;
. Je ne vois pas l'intérêt de transformer un élément en ligne en élément de bloc, alors qu'il existe des éléments de bloc appropriés (div
) facilement disponibles.h1
s'agit en fait d'un élément BLOCK. Désolé pour la confusion. Pourtant, je ne vois pas l'intérêt d'en faire unspan
élément de bloc, mais assez juste.En regardant ci-dessus, j'ai modifié pour:
CSS
HTML
Semble bien fonctionner.
la source
Prendre la solution de @ kajic et mettre le style en CSS:
Ensuite CSS (mais cela dépend de CSS3 dans l'utilisation du nième sélecteur):
À votre santé.
(PS Sur tbody et tr, Chrome, IE et Firefox insère au moins automatiquement un tbody et tr, c'est pourquoi mon échantillon, comme @ kajic, ne les incluait pas afin de raccourcir les choses dans le balisage html nécessaire. Cette solution a été testé avec les dernières versions d'IE, Chrome et Firefox, à partir de 2013).
la source
PAGE DEMO
HTML
CSS
la source
Cela a fonctionné pour moi et ne nécessite pas de couleur d'arrière-plan derrière le texte pour masquer une ligne de bordure, utilise plutôt la balise hr réelle. Vous pouvez jouer avec les largeurs pour obtenir différentes tailles de lignes hr.
la source
J'ai fait un violon qui utilise FlexBox et vous donnera également différents styles de FC (double ligne, symboles au centre de la ligne, ombre portée, encart, pointillé, etc.).
CSS
HTML
Ou voici un violon interactif: http://jsfiddle.net/mpyszenj/439/
la source
Vous pouvez essayer de faire un
fieldset
, et aligner l'élément "légende" (votre texte "section suivante") au milieu du champ avec seulementborder-top
set. Je ne sais pas comment une légende est positionnée en fonction de l'élément fieldset. J'imagine que ça pourrait être simplemargin: 0px auto
à faire, cependant.exemple :
la source
Vous pouvez accomplir cela sans
<hr />
. Sémantiquement, la conception doit être faite avec les moyens de CSS, dans ce cas c'est tout à fait possible.la source
Il y a toujours le bon vieux FIELDSET
la source
html
css
la source
Vous pouvez créer un bloc wrapper avec une image d'arrière-plan appropriée (et également définir une couleur d'arrière-plan pour votre bloc de texte centré).
la source
CSS
HTML
Vous pouvez modifier la largeur dans la classe "côté" et "milieu" en fonction de la longueur de votre texte dans la balise "span". Assurez-vous que la largeur du "milieu" plus 2 fois la largeur du "côté" égale à 100%.
la source
Fond transparent et réactif, hauteur et style de séparateur variables, position variable du texte, distance réglable entre le séparateur et le texte. Peut également être appliqué plusieurs fois avec différents sélecteurs pour plusieurs styles de séparateur dans le même projet.
SCSS ci-dessous.
Balisage (HTML):
CSS :
Sans
text-position
elle, par défaut, au centre.Démo:
Afficher l'extrait de code
Et SCSS , pour le modifier rapidement:
jouer du violon ici .
la source
la source