Maison >interface Web >tutoriel CSS >Introduction détaillée à l'attribut zoom en CSS

Introduction détaillée à l'attribut zoom en CSS

零下一度
零下一度original
2017-07-26 11:27:313208parcourir

L'attribut zoom est exclusif à IE. En plus de définir ou de récupérer le taux de zoom d'un objet, il a également des fonctions telles que le déclenchement de l'attribut haslayout d'IE, effacer les flottants et effacer le chevauchement des marges. Cependant, il convient de noter que Firefox ne prend pas en charge l'attribut zoom, mais l'attribut zoom peut également être pris en charge dans les navigateurs du noyau Webkit.

1. Quelques YY précédents

Tout d’abord, je ne sais pas si vous avez remarqué que le titre « Clear Floats » a des guillemets. Je me suis demandé récemment si ce soi-disant « flotteur de compensation » était exact. Les gens ont une mentalité de troupeau, en particulier dans notre société à culture collectiviste. Le conformisme n'est pas une étiquette négative. Dans les cultures collectivistes asiatiques (comme le Japon), il symbolise la patience, la maîtrise de soi et la maturité. avis, vous souvenez-vous encore de l'histoire de « deux boules de fer frappant le sol en même temps » à l'école primaire ?

J'ai quelque chose de personnel et d'émotion à dire ici, et les réfutations sont les bienvenues. Je vois souvent le mot « clear float » dans la technologie étrangère, qui se traduit par « clear float ». Je suis nouveau dans l'industrie, donc je ne peux que spéculer si « clear float » signifie vraiment cela, donc je l'utilise largement, et plus il est largement utilisé, moins il risque de constater son imprécision.

J'ai récemment réfléchi à certaines choses concernant la « compensation des flotteurs » et j'ai découvert que plus je pensais au terme « compensation des flotteurs », plus il devenait inexact. L'instruction précise devrait être "effacer l'impact de float". Qu'est-ce que le véritable "clearing float" ? C'est le sens littéral de "clearing float". Bien sûr, il est également possible que « effacer les flotteurs » soit une abréviation, ce qui signifie « éliminer l'impact des flotteurs ». C'est juste un nom informel, et tout le monde l'appelle ainsi, et tout le monde le sait réellement. J'espère que j'y pense trop.

YY est terminé, passons au sujet principal de cet article, un contenu réfléchi, et parlons de ma compréhension des raisons pour lesquelles le débordement et le zoom peuvent effacer l'impact du flottement. Ce sont des compréhensions superficielles, j'espère. les personnes qui comprennent vraiment peuvent me donner des conseils. Les corrections, les réfutations et vos propres opinions sont les bienvenues.

2. L'habillage des éléments

Le terme "wrapping" apparaît souvent en JavaScript, notamment dans les bibliothèques js comme jQuery. Hier, j'ai vu cette phrase très inspirante : « La pensée visuelle peut donner à votre esprit plus d'espace pour résoudre les problèmes d'une manière unique et efficace. » Ce qui est inspirant, c'est que la « pensée visuelle » est ici modifiée. , la « pensée visuelle », etc. sont également utilisés. C’est-à-dire qu’incorporer une réflexion très subjective et illogique lors de la réflexion sur les problèmes aidera à disposer d’un espace plus large pour résoudre les problèmes.

Quand je mentionne le mot « paquet », je pense aux globules blancs engloutissant les bactéries (pensée visuelle - association), ainsi qu'à la chaleur et à la tranquillité d'esprit (pensée émotionnelle). Ceci est lié à des facteurs tels que la génétique humaine et la croissance. Pourquoi est-ce que je parle de ces choses apparemment hors de propos ? Parce que beaucoup de choses que je vais décrire ci-dessous sont mes propres sentiments, « Je pense que c'est comme ça », beaucoup de choses subjectives.

(1) Jetons un coup d'œil au rôle du zoom dans les navigateurs non IE : Regardez l'exemple ci-dessous. J'y ai accédé sous Google Chrome. Dans cet exemple, zoom La fonction. consiste à zoomer jusqu'à 2 fois la taille originale (les lecteurs peuvent essayer l'opération de zoom par eux-mêmes)

1.zoom:1 Quand

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8" />
<style>
	p{
		width: 100px;
		height: 100px;
		border: 3px solid red; 
		zoom: 1;
}
</style>
	</head>
	<body>
		<p>hello</p>
	</body>
<html>


Le résultat du code ci-dessus est comme indiqué sur la figure :

2.zoom : 2 signifie que le zoom est 2 fois l'original :

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8" />
<style>
	p{
		width: 100px;
		height: 100px;
		border: 3px solid red; 
		zoom: 1;
}
</style>
	</head>
	<body>
		<p>hello</p>
	</body>
<html>

Remarque : le zoom semble prendre en charge le zoom avant ou arrière dans les environnements non-IE navigateurs, mais comme cet attribut est un attribut CSS non standard, donc généralement dans les navigateurs non IE, le zoom n'est pas utilisé pour obtenir l'effet de zoom de p. Maintenant, si vous souhaitez effectuer un zoom avant ou arrière, vous pouvez directement utiliser l'attribut. attribut de transformation de CSS3.

(2) Après avoir examiné les performances du zoom dans les navigateurs non-IE, nous devrions examiner le rôle de cet attribut dans les navigateurs IE.

Zoom的使用方法: 
zoom : normal | number 

normal :  默认值。使用对象的实际尺寸 
number :  百分数 | 无符号浮点实数。浮点实数值为1.0或百分数为100%时相当于此属性的 normal 值用白话讲解就是zoom:后面的数字即放大的倍数,可以是数值,也可以是百分比。如:zoom:1,zoom:120%。而这个属性只要在IE中才起作用,所以很少用到它的实际用途,而最经常用到作用是清除浮动等,如: 

.border{ 
border:1px solid #CCC; 
padding:2px; 
overflow:hidden; 
_zoom:1; 

_zoom是CSS hack中专对IE6起作用的部分。IE6浏览器会执行zoom:1表示对象的缩放比例,但这里 
overflow:hidden;和_zoom:1;是连起来用的,作用是清除border内部浮动。 

 同理,还可以使用同样方法清除margin属性在IE浏览器中的重叠问题:这就要提到zoom属性在IE中的第二个作用了,即

 兼容IE6、IE7、IE8浏览器,经常会遇到一些问题,可以使用zoom:1来解决,有如下作用: 

(2)触发IE浏览器的haslayout ,解决ie下的浮动,margin重叠等一些问题。 
比如,本站使用p做一行两列显示,HTML代码: 

<p class="h_mainbox"> 
<h2>推荐文章</h2> 
<ul class="mainlist"> 
<li><a href="#" style="color:#0000FF" target="_blank">CSS库吧</a></li> 
<li><a href="#" style="color:#0000FF" target="_blank">原创< /a></li> 
</ul> 
</p>


CSS代码: 

.h_mainbox { border:1px solid #dadada; padding:4px 15px; background:url(../mainbox_bg.gif) 0 1px repeat-x; margin-bottom:6px; overflow:hidden} 
.h_mainbox h2 { font-size:12px; height:30px; line-height:30px; border-bottom:1px solid #ccc; color:#555;} 
.h_mainbox h2 span { float:right; font-weight:normal;} 
.h_mainbox ul { padding:6px 0px; background:#fff;} 
.mainlist { overflow:auto; zoom:1;} 
.h_mainbox li { width:268px; float:left; height:24px; overflow:hidden; background:url(../icon3.gif) 0 6px no-repeat; padding:0px 5px 0px 18px; line-height:200%;}

.mainlist里面的zoom:1的那里就可以在IE6、IE7、IE8正常显示效果了。

(3)下面是zoom属性在IE浏览器中常见作用总结,希望对今后在使用这个属性时有所帮助:

1、检查页面的标签是否闭合 
不要小看这条,也许折腾了你两天都没有解决的 CSS BUG 问题,却仅仅源于这里。毕竟页面的模板一般都是由开发来嵌套的,而他们很容易犯此类问题。 
快捷提示:可以用 Dreamweaver 打开文件检查,一般没有闭合的标签,会黄色背景高亮。 

  2、样式排除法 
有些复杂的页面也许加载了 N 个外链 CSS 文件,那么逐个删除 CSS 文件,找到 BUG 触发的具体 CSS 文件,缩小锁定的范围。 

  对于刚才锁定的问题 CSS 样式文件,逐行删除具体的样式定义,定位到具体的触发样式定义,甚至是具体的触发样式属性。 

  3、模块确认法 
有时候我们也可以从页面的 HTML 元素出发。删除页面中不同的 HTML 模块,寻找到触发问题的 HTML 模块。 

  4、检查是否清除浮动 
其实有不少的 CSS BUG 问题是因为没有清除浮动造成的。养成良好的清除浮动的习惯是必要的,推荐使用 无额外 HTML 标签的清除浮动的方法(尽量避免使用 overflow:hidden;zoom:1 的类似方法来清除浮动,会有太多的限制性)。 

  5、检查 IE 下是否触发 haslayout 
很多的 IE 下复杂 CSS BUG 都与 IE 特有的 haslayout 息息相关。熟悉和理解 haslayout 对于处理复杂的 CSS BUG 会事半功倍。推荐阅读 old9 翻译的 《On having layout》(如果无法翻越穿越伟大的 GFW,可阅读 蓝色上的转帖 ) 
快捷提示:如果触发了 haslayout,IE 的调试工具 IE Developer Toolbar 中的属性中将会显示 haslayout 值为 -1。 

  6、边框背景调试法 
故名思议就是给元素设置显眼的边框或者背景(一般黑色或红色),进行调试。此方法是最常用的调试 CSS BUG 的方法之一,对于复杂 BUG 依旧适用。经济实惠还环保^^ 
最后想强调一点的是,养成良好的书写习惯,减少额外标签,尽量语义,符合标准,其实可以为我们减少很多额外的复杂 CSS BUG,更多的时候其实是我们自己给自己制造了麻烦。

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn