J'essaie de créer une partie de ma page Web qui corresponde à la largeur du navigateur. Pour cela, j'utilise width: 100%
, le problème est qu'elle affiche des barres de défilement et que je ne peux pas utiliser overflow-x: hidden;
car cela masquerait une partie du contenu , alors comment je peux résoudre ce problème?
#news {
list-style-type: none;
position: absolute;
bottom: 0;
width: 100%;
text-align: center;
margin-right: 10px;
margin-left: 10px;
padding: 0;
-webkit-user-select: text;
}
Parce que vous utilisez position: absolute
, au lieu d'utiliser:
width: 100%; margin-right: 10px; margin-left: 10px
tu devrais utiliser:
left: 10px; right: 10px
Cela rendra votre élément prendre toute la largeur disponible, avec 10px
espace à gauche et à droite.
Vous devez supprimer la margins
sur l'élément #news
#news {
list-style-type: none;
position: absolute;
bottom: 0;
width: 100%;
text-align: center;
margin-right: 10px; /*REMOVE THIS*/
margin-left: 10px; /*REMOVE THIS*/
padding: 0;
-webkit-user-select: text;
}
Si cela ne fonctionne pas, vous pourriez avoir margin
et padding
définis sur l'élément lui-même. Votre div
- si c'est ce que vous utilisez - pourrait se voir appliquer des styles, dans la feuille de style ou dans le style de base du navigateur. Pour les supprimer, définissez les marges spécifiquement sur 0
et ajoutez également !important
.
#news {
list-style-type: none;
position: absolute;
bottom: 0;
width: 100%;
text-align: center;
margin: 0 !important;
padding: 0 !important;
-webkit-user-select: text;
}
J'ai eu un problème similaire avec un élément positionné absolu, et je voulais utiliser la largeur 100%. C'est l'approche que j'ai utilisée et qui a résolu mon problème:
box-sizing=border-box
Sinon, j'ai toujours eu un peu de contenu et de bourrage au-delà de la barre de défilement.
Il semble que vous ayez défini la largeur à 100%, mais il existe également des marges qui obligent la largeur à s’étendre au-delà.
Essayez googler pour les "schémas flexibles css (à deux/trois colonnes)".
Voici un exemple
<div id="cont">
<div id="menu"></div>
<div id="main"></div>
<div class="clear"></div>
</div>
et le css
#menu{
float:left;
height:100%;
width:200px;
}
#main{
padding-left:200px;
}
.clear{clear:both;}
Le #menu div
sera aligné à gauche et aura une largeur statique de 200px
. Le #main div
commencera en dessous de #main
, mais à cause de son 200px padding
(peut également être une marge), son contenu et ses éléments enfants commenceront - où #menu
se termine.
Nous ne devons pas définir #main
sur un pourcentage de largeur (par exemple 100%
), car les 200 pixels de remplissage à gauche seront ajoutés à cela, et casserons la mise en page en ajoutant des barres de défilement à l'axe X.
La réponse est que vous avez défini des marges qui rendront la division plus large que le 100%; d'où les barres de défilement.
Si vous pouvez vous débarrasser des marges, faites-le! Cependant, vous voudrez souvent les marges. Dans ce cas, placez le tout dans un conteneur div et définissez les marges sur 0 avec une largeur de 100%.