Jag vill att användaren tydligt ska se vilket element som är aktivt (t.ex. genom att lägga på dubbel border). Jag använder onblur/onfocus och byter CSS-class på elementet. Finns det någon annat (smartare?) sätt att göra detta i Explorer?
Markera focus
8 svar · 444 visningar · startad av Web-Tor
Tjenare Tor.
Då Internet Explorer bara tar pseudo-classes på a-element så tror jag det blir svårt att åstadkomma med annat än javascript.
Om dina användare hade använt någon webbläsare som stöder css 2.1 så skulle du kunna göra så här.
http://member.webforum.nu/1029/tor.htm
mv icaaq
Precis, för IE får du köra med en JS lösning:
<style type="text/css">
.focused
{
background:orange;
}
.blurred
{
background:white;
}
</style>
<input type="text" onfocus="this.className='focused';" onblur="this.className='blurred';">
icaaq skrev:
Om dina användare hade använt någon webbläsare som stöder css 2.1 så skulle du kunna göra så här.
Tyvärr så är Explorer 5.5+ kravet för den webbapplikation som vi bygger.
PepeJeria skrev:
Precis, för IE får du köra med en JS lösning:
Jo, det är ju ungefär så jag gör idag. Hade hoppats att det fanns någon fin Explorer-specifik lösning.
Om du tycker det är jobbigt att lägga in JavaScriptet på varje element så skulle du ju kunna ha en grej som loopar igenom alla element och lägger till det. :)
Du kan ju fortsätta på PepeJerias lösning och göra den lite mer generell:
Eller kanske ännu snyggare, använd ett behavior!
[b]markfocus.htc[/b]
<public:component>
<public:attach event="onfocus" onevent="setFocus()" />
<public:attach event="onblur" onevent="setBlur()" />
<script>
function setFocus(){
element.style.background = "green";
}
function setBlur(){
element.style.background = "white";
}
</script>
</public:component>
[b]I css:[/b]
input {behavior:url("markfocus.htc")}
htc är verkligen smidigt att jobba med. :)
Vi använde det ganska flitigt i början av projektet. Problemet är att det är så satans segt! Av användarskäl har vi tyvärr tvingats "översätta" alla htc-lösningar till Javascript. :l