div居中的问题_html/css_WEB-ITnose
div {
margin: auto;
position: absolute;
top: 0;
left: 0;
right: 0
bottom: 0;
width: 100px;
height: 100px;
border:1px solid red;
}
将产生一个div, width: 100px; height: 100px; 外边框 1px 红色实线 ;
div居于屏幕中间,对于居于中间这点,我无法理解,为何下面的做法不可以?
div {
margin: auto;
position: absolute;
top: 0;
left: 0;
width: 100px;
height: 100px;
border:1px solid red;
}
回复讨论(解决方案)
问题1
top: 0;
left: 0;
为何不可以代替
top: 0;
left: 0;
right: 0
bottom: 0;
问题2
margin:auto为何不可以代替
margin: auto;
top: 0;
left: 0;
right: 0
bottom: 0;
<html> <head> <style type="text/css"> div { margin: auto; position: absolute; right: 0; bottom: 0; top: 0; left: 0; width: 100px; height: 100px; border:1px solid red; } </style> </head> <body> <div></div> </body></html>
打开浏览器,改变浏览器的视区的大小,发现依然居中
因为该div设置了position为absolute,而且设置了置入值(left\right\top\bottom),根据元素包含块的定义,因为div的父级没有position为“absolute”、“relative”或者“fixed”的祖先元素,所以该div的包含块为初始包含块,即根元素html的包含块,我在控制台选中html标签的时候,可以看出整个视区都被选中,所以这个时候初始包含块就是视区
根据css2.1中‘top’ + ‘margin-top’ + ‘border-top-width’ + ‘padding-top’ + ‘height’ + ‘padding-bottom’ + ‘border-bottom-width’ + ‘margin-bottom’ + ‘bottom’ = 包含块的高度
设置margin的属性为auto恰好填充了空白
可以在控制台看出随着视区大小变化,margin的值随之变化
问题1:
如果只有left属性和top属性 那么margin属性为auto没有起到任何的作用
只有设置了left和right,或者top与bottom的时候,margin为auto的时候才会去填充左右或者上下的空白,达到left属性0,right属性为0,top属性为0,bottom属性为0 的效果,不然div只有100*100那么大,不可能达到left为0又right为0的效果啊!只有添加margin,增大在文档流的占用空间
问题2:
同理问题1,不设置置入值(left\right\top\bottom),这个时候margin属性为auto没有起到任何的作用
<html> <head> <style type="text/css"> div { margin: auto; position: absolute; right: 0; bottom: 0; top: 0; left: 0; width: 100px; height: 100px; border:1px solid red; } </style> </head> <body> <div></div> </body></html>
打开浏览器,改变浏览器的视区的大小,发现依然居中
因为该div设置了position为absolute,而且设置了置入值(left\right\top\bottom),根据元素包含块的定义,因为div的父级没有position为“absolute”、“relative”或者“fixed”的祖先元素,所以该div的包含块为初始包含块,即根元素html的包含块,我在控制台选中html标签的时候,可以看出整个视区都被选中,所以这个时候初始包含块就是视区
根据css2.1中‘top’ + ‘margin-top’ + ‘border-top-width’ + ‘padding-top’ + ‘height’ + ‘padding-bottom’ + ‘border-bottom-width’ + ‘margin-bottom’ + ‘bottom’ = 包含块的高度
设置margin的属性为auto恰好填充了空白
可以在控制台看出随着视区大小变化,margin的值随之变化
问题1:
如果只有left属性和top属性 那么margin属性为auto没有起到任何的作用
只有设置了left和right,或者top与bottom的时候,margin为auto的时候才会去填充左右或者上下的空白,达到left属性0,right属性为0,top属性为0,bottom属性为0 的效果,不然div只有100*100那么大,不可能达到left为0又right为0的效果啊!只有添加margin,增大在文档流的占用空间
问题2:
同理问题1,不设置置入值(left\right\top\bottom),这个时候margin属性为auto没有起到任何的作用
上面描述增大在文档流的占用空间不正确,position属性为absolute已经脱离了文档流,应该是增大该div的占用空间比较准确一点

Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

AI Hentai Generator
Générez AI Hentai gratuitement.

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Sujets chauds

Le cache de mise à jour de la page Web du compte officiel, cette chose est simple et simple, et elle est suffisamment compliquée pour en boire un pot. Vous avez travaillé dur pour mettre à jour l'article officiel du compte, mais l'utilisateur a toujours ouvert l'ancienne version. Dans cet article, jetons un coup d'œil aux rebondissements derrière cela et comment résoudre ce problème gracieusement. Après l'avoir lu, vous pouvez facilement faire face à divers problèmes de mise en cache, permettant à vos utilisateurs de toujours ressentir le contenu le plus frais. Parlons d'abord des bases. Pour le dire franchement, afin d'améliorer la vitesse d'accès, le navigateur ou le serveur stocke des ressources statiques (telles que des images, CSS, JS) ou du contenu de la page. La prochaine fois que vous y accédez, vous pouvez le récupérer directement à partir du cache sans avoir à le télécharger à nouveau, et il est naturellement rapide. Mais cette chose est aussi une épée à double tranchant. La nouvelle version est en ligne,

Cet article démontre un ajout de bordure PNG efficace aux pages Web à l'aide de CSS. Il soutient que CSS offre des performances supérieures par rapport à JavaScript ou à des bibliothèques, détaillant comment ajuster la largeur, le style et la couleur des bordures pour un effet subtil ou proéminent

L'article traite du HTML & lt; Datalist & GT; élément, qui améliore les formulaires en fournissant des suggestions de saisie semi-automatique, en améliorant l'expérience utilisateur et en réduisant les erreurs. COMMANDE COMPRES: 159

L'article discute de l'utilisation des attributs de validation de formulaire HTML5 comme les limites requises, motifs, min, max et longueurs pour valider la saisie de l'utilisateur directement dans le navigateur.

L'article examine les meilleures pratiques pour assurer la compatibilité des navigateurs de HTML5, en se concentrant sur la détection des fonctionnalités, l'amélioration progressive et les méthodes de test.

L'article traite du HTML & lt; Progress & GT; élément, son but, son style et ses différences par rapport au & lt; mètre & gt; élément. L'objectif principal est de l'utiliser & lt; Progress & gt; pour l'achèvement des tâches et & lt; mètre & gt; pour stati

L'article traite du HTML & lt; mètre & gt; élément, utilisé pour afficher des valeurs scalaires ou fractionnaires dans une plage, et ses applications courantes dans le développement Web. Il différencie & lt; mètre & gt; De & lt; Progress & gt; et ex

Cet article explique le html5 & lt; time & gt; élément de représentation sémantique de date / heure. Il souligne l'importance de l'attribut DateTime pour la lisibilité à la machine (format ISO 8601) à côté du texte lisible par l'homme, stimulant AccessIbilit
