CSS-fråga | Programmering / Grafisk formgivning | Forum

A A A

Please consider registering
Guest

Search

— Forum Scope —




— Match —





— Forum Options —





Minimum search word length is 3 characters - maximum search word length is 84 characters

Lost password?
The forums are currently locked and only available for read only access
sp_Feed sp_TopicIcon
CSS-fråga
This topic is locked
Avatar
dreamweaver
Kommer du hit ofta?
Medlem
Forum Posts: 1220
Member Since:
maj 1, 2005
sp_UserOfflineSmall Offline
1
maj 11, 2010 - 7:06 e m
sp_Permalink sp_Print

Hur får jag IE att bortse ifrån vissa attribut som jag har i en CSS?

Exempel:

CSS

.menupopup {
Z-INDEX: 3000;
POSITION: absolute;
DISPLAY: none;

(detta ska inte =<IE7 se)
MARGIN-BOTTOM: 17px
BOTTOM: 0px;
RIGHT: 1px;
(/detta)

(detta ska bara =< IE7 se)
MARGIN-LEFT: 55px;
LEFT: 1px;
TOP: 0px;
(/detta)
}

Jag kan ju givetvis lägga in det som

generic.css
.menupopup {
Z-INDEX: 3000;
POSITION: absolute;
DISPLAY: none;
}
<!--[if !lte IE 7]>
non-ie_crap.css
<![endif]-->
.menupopup { 
MARGIN-BOTTOM: 17px
BOTTOM: 0px;
RIGHT: 1px;
}
<!--[if lte IE 7]>
ie_crap.css
<![endif]-->
.menupopup { 
MARGIN-LEFT: 55px;
LEFT: 1px;
TOP: 0px;
}

Men det blir så klöddigt med tre filer. En huvudfil som det ska vara i moderna webbläsare och sen en anus-fil för IE7 och äldre vore najs. Går det så att säga radera attribut som har laddats in i en tidigare CSS och bortse ifrån dessa, vilket isf skulle göras i ie_crap.css? För det funkar inte att exempelvis sätta ”RIGHT: 0px” i efterhand för då existerar attributet och ställer till problem i renderingen.

Några idéer?

Avatar
Snorch
Medlem
Medlem
Forum Posts: 8881
Member Since:
mars 14, 2001
sp_UserOfflineSmall Offline
1249304
maj 12, 2010 - 1:32 e m
sp_Permalink sp_Print

Det går ju alltid att lösa det genom att ha två css-filer, en för alla vettiga browser och en annan för IE.
Om jag minns rätt.


<link rel="stylesheet" type="text/css" href="not-ie.css" />



<link rel="stylesheet" type="text/css" href="ie.css" />

Annars ska det inte vara några problem att ha flera css attribut eftersom de skrivs över av nästa, så länge man det specifika för IE sist. Så har jag själv gjort flera gånger.
En annan lösning är att göra tex såhär:

body
{
background: white; /* all browsers */
*background: black; /* black on ie7 only */
_background: blue; /* blue on ie 6 only */
}
Avatar
dreamweaver
Kommer du hit ofta?
Medlem
Forum Posts: 1220
Member Since:
maj 1, 2005
sp_UserOfflineSmall Offline
1249339
maj 12, 2010 - 7:51 e m
sp_Permalink sp_Print

Snorch wrote: Det går ju alltid att lösa det genom att ha två css-filer, en för alla vettiga browser och en annan för IE.
Om jag minns rätt.


<link rel="stylesheet" type="text/css" href="not-ie.css" />



<link rel="stylesheet" type="text/css" href="ie.css" />

Jo, men då har du en extra CSS för den generiska koden som funkar i båda webbläsarna, därav tre filer totalt. Om man bara har de ovanstående så har man två uppsättningar kod där 99% är identiskt, och det blir extra arbete att underhålla två filer som ska ha samma innehåll.

Snorch wrote: Annars ska det inte vara några problem att ha flera css attribut eftersom de skrivs över av nästa, så länge man det specifika för IE sist. Så har jag själv gjort flera gånger.
En annan lösning är att göra tex såhär:

body
{
background: white; /* all browsers */
*background: black; /* black on ie7 only */
_background: blue; /* blue on ie 6 only */
}

Njae, att skriva över ett attribut är inte samma sak som att bortse ifrån det. Säg att den generiska koden har ”BOTTOM: 0px;” för en klass, så kan jag inte få ie att bortse ifrån denna i efterhand. Att sätta ”BOTTOM: null;” funkar ju inte. För så fort jag sätter ett värde på ett attribut så sätter det ett constraint, och sen går det bara att ändra värde på det, inte få det att försvinna.

Avatar
Snorch
Medlem
Medlem
Forum Posts: 8881
Member Since:
mars 14, 2001
sp_UserOfflineSmall Offline
1249350
maj 12, 2010 - 9:38 e m
sp_Permalink sp_Print

Nej jag tänkte mer att du använder två filer med allt i, mer arbete blir det såklart (om man nu ändrar så mycket när det väl är klart) men man har å andra sidan allt samlat, inga ”include”-filer.

Inser att jag inte läste dina exempel ordentligt.
Ska det inte gå att använda [if IE] före själva css-koden, likt det nedan. Har för mig jag sett något sånt exempel tidigare. Prova släng in det på varje rad i första koden du har i först inlägget.


[if ! IE] MARGIN-BOTTOM: 17px
[if lte IE] MARGIN-LEFT: 55px;

osv.

This topic is locked
Forum Timezone: Europe/Stockholm

Most Users Ever Online: 694

Currently Online:
83 Guest(s)

Currently Browsing this Page:
1 Guest(s)

Top Posters:

Andreas Galistel: 16287

Jonas Klar: 15897

ilg@dd: 10810

Nyhet: 10607

Mind: 10550

Ctrl: 10355

Gueno: 9881

Guest: 9344

Snorch: 8881

Callister: 8468

Newest Members:

evarus2

evarus

Alex Aleksandra

Streetslevel

absorc

Termin_ruleZ2

angsamerah

mrbeardsweden

landfarm

ipesodozect

Forum Stats:

Groups: 11

Forums: 59

Topics: 146630

Posts: 1300967

 

Member Stats:

Guest Posters: 2

Members: 78407

Moderators: 0

Admins: 11

Administrators: nordicadmin, Henrik Berntsson, Anton Karmehed, Carl Holmberg, Joel Oscarsson, Mikael Linnér, Mikael Schwartz, Andreas Paulsson, Nickebjrk, Mattias Pettersson, EmxL