2010-08-19 12 views
11

Próbuję zaokrąglić rogi w IE z dołączonym zachowanie CSS3 PIE.CSS3 PIE - Dawanie pomocy IE border-radius nie działa?

Oto mój CSS:

.fieldRow { 
    clear:both; 
    padding: 0; 
    margin: 0; 
    overflow: hidden; 
    line-height:17px; 
} 
.alternate, .rowMousedOver { 
    -moz-border-radius: 10px; 
    -webkit-border-radius: 10px; 
    border-radius: 10px; 
    behavior: url(PIE.php); 
    position: relative; 
} 
.rowMousedOver{ 
    background-color: #E2E66D !important; 
} 
.alternate { 
    background-color: #FCFEE8; 
} 

a oto niektóre próbki HTML:

<div class="fieldRow alternate"> 
       <div class="label"><label id="title_label" for="title"> Title: </label></div> 
       <div class="fieldWrapper required text"> 
        <div class="cellValue"><input type="text" onchange="validateField(this)" name="title" id="title" value="Tax Free Savings Accounts" disabled=""></div> 
       </div> 
      </div> 

i poprzez javascript dodam rowMousedOver do fieldRow gdy jest on unosił.

Każdy pomysł, dlaczego to nie działa? Próbowałem również używać behavior: url(PIE.htc), ale nie miałem z tym szczęścia.

Dzięki!

+1

to działa na Firefox i Chrome? – NullUserException

+2

Może to problem ze ścieżką. Ponieważ htc jest standardem MS, ścieżka do adresu URL jest relatywna względem dokumentu, a nie arkusza stylów. Zawsze możesz najpierw spróbować użyć bezwzględnego adresu URL. – NullUserException

+0

Tak właśnie zasugerował cordesmj, ale umieściłem go we właściwym miejscu i wciąż nie zaokrągla. – Garrett

Odpowiedz

12

Żądania PIE.htc powinny odpowiadać mime typu "text/x-component" - lub IE nie będzie dotykać zachowania. PIE.php, którego używasz, powinno to naprawić. Jeśli nie masz pewności, czy tak jest, skorzystaj z funkcji sieci FireBug, aby sprawdzić bezpośrednie żądanie do pliku.

Należy również zauważyć, że ścieżka do PIE.htc jest względna do strony HTML - nie w stosunku do pliku css, którego można się spodziewać. Więc rozważ ścieżkę do .htc absolute. Tutaj FireBug pomoże ci ponownie wykryć, czy masz 404 problem.

Więcej informacji na http://css3pie.com/documentation/known-issues/

+0

Nie widzę żądania dla PIE.php, ale umieszczam zarówno PIE.php, jak i PIE.htc w tym samym katalogu, co uruchomiony plik PHP. jaki może być problem? – Garrett

+0

działa teraz, ale dostaję "przepełnienie stosu w linii 0" = S, gdy wyjmę css dla PIE, przestaję uzyskiwać ten błąd. jakieś pomysły? – Garrett

+0

nevermind, widzę, że jeśli zastosujesz go do tego samego elementu dwa razy (z dwiema różnymi klasami), spowoduje to przepełnienie stosu. Ograniczę się do jednego :) dziękuję bardzo !!! – Garrett

2

Problem może znajdować się na Twojej ścieżce, w zależności od miejsca umieszczenia pliku PIE.htc. Zauważ, że Pie „podręczny” dokumentacja (here) wymienia następujące:

... trzeba będzie dostosować ścieżkę pasujące do której dodany PIE.htc w kroku 2. Uwaga: Ta ścieżka jest względna do wyświetlanego pliku HTML, a nie do pliku CSS, z którego jest wywoływany.

Więc behavior: url(PIE.htc); powinno działać, jeśli plik PIE.htc jest w tym samym folderze co plik html (przynajmniej, że pracował dla mnie :-)).

Jednak nie jestem pewien, co chcesz zobaczyć zaokrąglone ... div, który został dotknięty, wydaje się nie mieć żadnych widocznych cech. Jeśli chcesz zobaczyć element div z zaokrąglonymi narożnikami, możesz chcieć uczynić obramowanie lub tło widoczne, takie jak dodanie border: 1px solid black; lub background-color: someColor; do klasy fieldrow.

Jeśli chcesz zobaczyć pole wejściowe zaokrąglone, możesz zadeklarować klasę jako .fieldRow input {...}

+0

Po prostu zrobiłem tak, jak powiedziałeś, ponieważ miałem dwa pliki, w których znajduje się mój CSS, ale nie w folderze głównym, gdzie wszystkie strony są, ale nadal nie działa (wypróbowano zarówno PIE.htc, jak i PIE.php). – Garrett

+0

Ważna deklaracja! Wydaje się nieco zepsuć ... jeśli jednak to usuniemy, kod wydaje się działać. Również pozycja: względna; nie wydaje się konieczne. Z jakiej wersji IE korzystasz? –

12

Spróbuj dodać position: relative do ty css oświadczenie. Kilka razy miałem tę kwestię i zwykle to rozwiązuje. Więcej informacji można znaleźć pod adresem: http://css3pie.com/documentation/known-issues/

+0

Dodałem to do CSS, ale wciąż nie zaokrąglałem = S – Garrett

+0

Zobacz, jak wygląda http://www.simnom.co.uk/pie. Ma zaokrąglone rogi na pudełku, używając PIE.php jako dołączonego pliku zachowania. – simnom

+0

Po prostu dodaj to działa w IE8 z włączonym i wyłączonym trybem zgodności. – simnom

1

Warto również zauważyć - Miałem problem, gdzie zaokrąglone narożniki nie działa w LTE IE8 kiedy bym ustawić kolor tła z !important reguły po nim. Kolejny powód, którego nie warto używać! Ważne!

0

Rozwiązanie, które działa na mnie jest następujący:

  1. Ścieżka PIE.htc musi być całkowity, np Zachowanie: url (App_Themes/default/PIE.htc)
  2. Upewnij div, które ustawia zachowanie się ma styl position: relative

Dan