J'essaie d'appliquer une bordure avant et après le texte. Il fonctionne sur tous les navigateurs à l'exception de Microsoft Edge et d'Internet Explorer. J'utilise display: flex et veuillez consulter mon code pour plus de détails
J'ai essayé de définir max-width à 100% et d'ajouter box-sizing: border-box mais ne semble pas fonctionner
const text = styled(div)` display: flex; align-items: center; color: gray; margin-bottom: 24px; ::before, ::after { content: ''; width: 100%; border-top: 1px solid gray; } ::before { margin-right: 8px; } ::after { margin-left:8px; } `; <text>OR</text>
J'ai besoin que la bordure apparaisse également dans IE 11
3 Réponses :
Inspiré d'une vidéo de Rachel Andrew:
Grille pour atteindre cet objectif.
html:
h1 { /* grid layout css */ display: grid; align-items: center; gap: 8px; /* other css */ color: gray; margin-bottom: 24px; } ::before, ::after { content: ''; border-top: 1px solid gray; }
css:
<h1>OR</h1>
https://caniuse.com/#search=grid a>
Vous pouvez utiliser flex avec une grille enveloppée dans @supports https://developer.mozilla.org/en-US/docs/Web/CSS/@supports .
mise en page html utilisant css en 2019 https://www.youtube.com/watch?v=5XsZnCwbgwA
p >
Inspiré par la réponse de @Carol McKay. Le code peut bien fonctionner dans Edge mais pas dans IE. Je l'ai donc modifié et le code ci-dessous peut bien fonctionner dans Edge et IE11:
<h1>OR</h1>
h1 { /* grid layout css */ display: grid; align-items: center; grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr); grid-gap: 8px; /* other css */ color: gray; margin-bottom: 24px; } h1::before, h1::after { content: ""; display: block; border-top: 1px solid gray; }
Pour IE11, vous devez réinitialiser display
sur le pseudo élément et réinitialiser également flex-grow
.
Votre code devient:
<text>OR</text>
Démo ci-dessous pour exécuter avec IE.
text { display: flex; align-items: center; color: gray; margin-bottom: 24px; width:100%; } text::before, text::after { content: ''; display:block; flex-grow:1 ; border-top: 1px solid gray; } text::before { margin-right: 8px; } text::after { margin-left: 8px; }
const text = styled(div)` display: flex; align-items: center; color: gray; margin-bottom: 24px; ::before, ::after { content: ''; display:block; flex-grow:1; border-top: 1px solid gray; } ::before { margin-right: 8px; } ::after { margin-left:8px; } `; <text>OR</text>
est que le fantôme errant se promène depuis IE5 ??
Ça ne casse que parfois
display block ou inline-block sur le :: before :: after pourrait aider.
J'ai essayé mais ça casse quand je le recharge deux ou trois fois