Procento šířka podřízený prvek v naprosto umístěného rodiče na Internet Explorer 7

hlasů
249

Mám naprosto a umístěn div, které obsahují několik dětí, z nichž jeden je poměrně umístěna div. Když jsem se použít šířku procento založené na dítě div, to se zhroutí na ‚0‘ šířka na Internet Explorer 7 , ale ne na Firefox nebo Safari.

Mám-li použít pixel šířku , to funguje. V případě, že rodič je relativně umístěn, šířka procento na dítě funguje.

  1. Je tu něco, co mi tu chybí?
  2. Existuje jednoduchý fix pro to kromě šířky pixelu založené na dítě?
  3. Je tu oblast specifikaci CSS, která pokrývá to?
Položena 31/07/2008 v 23:08
zdroj uživatelem
V jiných jazycích...                            


6 odpovědí

hlasů
129

Rodič divmusí mít definovány width, a to buď v pixelech, nebo v procentech. V aplikaci Internet Explorer 7, rodič divpotřebuje definovaný widthpro dítě procentního divs správně fungovat.

Odpovězeno 01/08/2008 v 13:22
zdroj uživatelem

hlasů
53

Zde jsou některé ukázkový kód. Myslím, že to je to, co hledáte. Následující zobrazuje přesně stejné ve Firefoxu 3 (Mac) a IE7.

#absdiv {
  position: absolute; 
  left: 100px; 
  top: 100px; 
  width: 80%; 
  height: 60%; 
  background: #999;
}

#pctchild {
  width: 60%; 
  height: 40%; 
  background: #CCC;
}

#reldiv {
  position: relative;
  left: 20px;
  top: 20px;
  height: 25px;
  width: 40%;
  background: red;
}
<div id="absdiv">
    <div id="reldiv"></div>
    <div id="pctchild"></div>
</div>

Odpovězeno 05/08/2008 v 06:54
zdroj uživatelem

hlasů
34

IE před 8 má časový aspekt jeho box modelu, která zejména vytváří problém s šířkou bázi procentní. Ve vašem případě, zde naprosto umístěn divve výchozím nastavení nemá šířku. Jeho šířka bude vypracován na základě pixelové šířce jejího obsahu a budou vypočteny poté, co obsah je vykreslen. Takže v okamžiku IE setkává a poskytuje svůj relativně umístěn divjejí mateřská má šířku 0 a proto důvod, proč sám zhroutí 0.

Pokud byste chtěli více do hloubky diskusi o tomto spolu s velkým množstvím pracovních příkladů, mají houser zde .

Odpovězeno 04/09/2008 v 10:02
zdroj uživatelem

hlasů
30

Proč ne procento šířka dítě naprosto umístěného mateřské práci v IE7?

Vzhledem k tomu, že je to Internet Exploder

Je tu něco, co mi tu chybí?

To znamená, že ke zvýšení informovanosti / váš spolupracovník jeho klientů, které IE saje.

Existuje jednoduchý fix kromě šířky pixelu založené na dítě?

Použijte emjednotky, protože jsou užitečné při vytváření kapalné rozvržení, jak je můžete použít pro výplň a okraje, jakož i velikostí písma. Takže vaše bílá plocha roste a zmenšuje úměrně ke svému textu, pokud je změněna (což je opravdu to, co budete potřebovat). Nemyslím si, že procenta získá kontrolu nad jemnější než EMS; není nic, co by vás zastavit zadáním v setinách EMS (0,01 em) a prohlížeče bude interpretovat, jak uzná za vhodné.

Je tu oblast specifikaci CSS, která pokrývá to?

Žádné, pokud si vzpomínám em'sa% s byl určen pro velikost písma sám zpátky na CSS 1.0.

Odpovězeno 13/05/2009 v 08:47
zdroj uživatelem

hlasů
28

Myslím, že to má něco společného s tím, jak hasLayoutvlastnost je implementována ve starším prohlížeči.

Zkusili jste váš kód v IE8, aby zjistili, zda práce tam taky? IE8 má Debugger ( F12) a může také spustit v režimu IE7.

Odpovězeno 22/10/2010 v 17:21
zdroj uživatelem

hlasů
1

Tyto divmusí mít definovanou šířku:

<div id="parent" style="width:230px;">
    <div id="child1"></div>
    <div id="child2"></div>
</div>
Odpovězeno 07/09/2018 v 14:53
zdroj uživatelem

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more