Le HTML & CSS: Comment créer quatre taille égale, les onglets de remplissage de 100% de la largeur?
Je suis en train de créer un panneau de navigation de mon site web. J'aimerais qu'il se composent de:
- Quatre onglets de taille égale avec texte centré dans chaque onglet.
- Ils doivent remplir l'ensemble de la largeur de la page.
J'aimerais vraiment que la conception de l'être flexible et compatible avec les navigateurs. J'ai essayé différents float techniques, mais je ne peux pas le faire fonctionner. J'espère que vous pourrez m'aider!
Merci.
InformationsquelleAutor nodesto | 2012-08-18
Vous devez vous connecter pour publier un commentaire.
HTML
EDIT: c'est 2015 et HTML5 a été là pendant un certain temps; code suivant doit être à l'intérieur d'un
nav
élément (html5doctor) avec point de repère ARIA attributrole="navigation"
sur elle (et 99,9% du temps être unique dans une page donnée).Un panneau de navigation doit utiliser une liste non ordonnée de liens:
CSS
EDIT2: C'est en 2017, il suffit d'utiliser Flexbox (avec ou sans
flex-wrap: wrap
)inline-block
est utile, mais elle a un inconvénient: l'espace entre deux éléments doivent être gérés avec soin. Si retiré ou pas</li>
en HTML5 ou</li>
au début de la ligne suivante coincé comme</li><li>next item
ou d'autres astuces, vous avez toujours à faire quelque chose ou il va créer un ~4px écart entre les 2 éléments.25% + 25% + 25% + 25% n'est pas égal à 100% sur tous les navigateurs si le total n'est pas un multiple de 4. Chaque navigateur a sa propre méthode d'arrondi.
Si vous souhaitez que des éléments à un total de 100% de la largeur et de la même largeur, une autre méthode consiste à utiliser
display: table
(ettable-cell
) avectable-layout: fixed
de forcer les navigateurs à utiliser le autres table algorithme, le seul qui n'essayez pas d'adapter la largeur des cellules de contenu, mais de respecter les largeurs voulu par le concepteur/développeur autant que possible.Violon
http://jsfiddle.net/PhilippeVay/aHCy3/1/
edit: http://jsfiddle.net/PhilippeVay/aHCy3/2/ avec une autre méthode pour l'espace entre chaque onglet, avec l'aimable autorisation de mon collègue.
.tab
à partir de leurs propres élément de la liste. Comme il y a un id#nav
surul
, cette classe n'est plus nécessaire, li sont de style avec le sélecteur#nav li
. Le violon, le lien et le code HTML d'édition.border-spacing
)Vous n'avez pas besoin de flotteurs pour cela. Il suffit de régler la largeur de 25%, ou un tout petit peu moins de 25%. Si vous êtes en utilisant ce sur un bloc de niveau élément, un ensemble
display: inline-block
. Cela fonctionne pour tous les navigateurs de tailles, ainsi que de répondre à la fenêtre de redimensionnement.HTML
CSS
démo
width: 25%
.text-align:center
depuis l'OP veut que le texte soit centré.div
éléments, mais nav>ul>li*4>a (en ZenCoding notation) en HTML5 (même sans nav dans le HTML4.01/XHTML1.0)css:
html:
jsfiddle: http://jsfiddle.net/zP7Xh/6/
inline-block
si vous flotter? C'aurez également besoin de deux préfixé box-sizing de la propriété et un clearfix sur parent.box-sizing
maisinline-block
: supprimerinline-block
et il fonctionne toujours. Éléments flottants qui sont renderd commeblock
par défaut est déjà OK, pas besoin de changer leur écran.