Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [CSS] wskazywanie jedynie obowiązującego selektora
stellatus
post 22.04.2020, 12:17:02
Post #1





Grupa: Zarejestrowani
Postów: 196
Pomógł: 0
Dołączył: 9.03.2017

Ostrzeżenie: (0%)
-----


Czy jest w CSS takie polecenie, które wskazuje, że dany selektor jest jedynie obowiązujący, a wszystkie pozostałe o tej samej nazwie mają być ignorowane? Chodzi mi o coś w stylu:

Kod
blockquote::before [b][u]!!!ONLY THIS IS VALID[/u][/b] {
    display: inline;
    width: 1em;
    margin: 0 auto;
    position: initial;
    z-index: -1;
    left: 0;
    right: 0;


Czyli, jeżeli istnieją jeszcze inne selektory o tej samej nazwie i zwierają one inne atrybuty, to te atrybuty też mają być zignorowane, np.:

Kod
blockquote::before {
    left: 5;
    right: 5;
    top: 20px;
    font: 40px;
    cursor: default;
    vertical-align: bottom;
    content: "\e056";


Ten selektor nie byłby wskazany jako obowiązujący, więc wszystkie jego wartości byłyby skreślone.

Jest coś takiego możliwe w CSS?
Go to the top of the page
+Quote Post
nospor
post 22.04.2020, 12:20:04
Post #2





Grupa: Moderatorzy
Postów: 36 447
Pomógł: 6292
Dołączył: 27.12.2004




Moze chodzi ci o
!important
?

Nie mniej jednak powinienies lepiej/dokladniej definiowac selectory by uniknac takich problemow


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
stellatus
post 22.04.2020, 12:28:56
Post #3





Grupa: Zarejestrowani
Postów: 196
Pomógł: 0
Dołączył: 9.03.2017

Ostrzeżenie: (0%)
-----


A da się za pomocą !important wskazać selektor?

Potrzebuję tego do WordPressa. Nie chcę mieć takiego CSS dla <blockquote> jaki narzucili mi autorzy szablonu i chciałbym po prostu wskazać swój CSS dla tego elementu jako jedynie obowiązujący. Skasować ich CSS z oryginalnego pliku nie mogę, bo każda aktualizacja szablonu może skasować wprowadzone przeze mnie zmiany.


Edit:
Nie da się: https://stackoverflow.com/questions/4327321...-class-selector

Ten post edytował stellatus 22.04.2020, 12:36:01
Go to the top of the page
+Quote Post
nospor
post 22.04.2020, 12:37:14
Post #4





Grupa: Moderatorzy
Postów: 36 447
Pomógł: 6292
Dołączył: 27.12.2004




To jak mowilem, okresl swoja dokladniejsza sciezke do blockquote, bo zakladam ze one i tak leza w jakims divie

twojdiv blockquote::before {

Selektory z wieksza dokladnoscia maja pierwszenstwo


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
trueblue
post 22.04.2020, 12:40:04
Post #5





Grupa: Zarejestrowani
Postów: 6 761
Pomógł: 1822
Dołączył: 11.03.2014

Ostrzeżenie: (0%)
-----


A w jakim momencie doczytywany jest Twój plik styli, przed czy za tym z szablonu?


--------------------
Go to the top of the page
+Quote Post
stellatus
post 22.04.2020, 12:45:41
Post #6





Grupa: Zarejestrowani
Postów: 196
Pomógł: 0
Dołączył: 9.03.2017

Ostrzeżenie: (0%)
-----


Cytat
A w jakim momencie doczytywany jest Twój plik styli, przed czy za tym z szablonu?


Mój plik CSS jest ważniejszy niż ten z szablonu.

Cytat(nospor @ 22.04.2020, 13:37:14 ) *
To jak mowilem, okresl swoja dokladniejsza sciezke do blockquote, bo zakladam ze one i tak leza w jakims divie

twojdiv blockquote::before {

Selektory z wieksza dokladnoscia maja pierwszenstwo


Dzięki, tylko ja bym chciał, żeby wszędzie, na całym blogu, mój CSS dla <blocquote> był obowiązujący.


Ten post edytował stellatus 22.04.2020, 12:43:48
Go to the top of the page
+Quote Post
trueblue
post 22.04.2020, 12:47:48
Post #7





Grupa: Zarejestrowani
Postów: 6 761
Pomógł: 1822
Dołączył: 11.03.2014

Ostrzeżenie: (0%)
-----


Cytat(stellatus @ 22.04.2020, 13:45:41 ) *
Mój plik CSS jest ważniejszy niż ten z szablonu.

Czyli za tym z szablonu, tak?


--------------------
Go to the top of the page
+Quote Post
stellatus
post 22.04.2020, 12:49:35
Post #8





Grupa: Zarejestrowani
Postów: 196
Pomógł: 0
Dołączył: 9.03.2017

Ostrzeżenie: (0%)
-----


Tak.
Go to the top of the page
+Quote Post
trueblue
post 22.04.2020, 13:01:31
Post #9





Grupa: Zarejestrowani
Postów: 6 761
Pomógł: 1822
Dołączył: 11.03.2014

Ostrzeżenie: (0%)
-----


Zobacz jaka jest kolejność przyporządkowywania styli w: F12->Elements (kliknij na stronie element)->boczny panel->Styles (na Chrome).


--------------------
Go to the top of the page
+Quote Post
stellatus
post 22.04.2020, 13:36:33
Post #10





Grupa: Zarejestrowani
Postów: 196
Pomógł: 0
Dołączył: 9.03.2017

Ostrzeżenie: (0%)
-----


Dokładnie wygląda to tak:



Go to the top of the page
+Quote Post
trueblue
post 22.04.2020, 13:48:58
Post #11





Grupa: Zarejestrowani
Postów: 6 761
Pomógł: 1822
Dołączył: 11.03.2014

Ostrzeżenie: (0%)
-----


I co, element nie ma padding 0.5rem?


--------------------
Go to the top of the page
+Quote Post
stellatus
post 22.04.2020, 14:12:38
Post #12





Grupa: Zarejestrowani
Postów: 196
Pomógł: 0
Dołączył: 9.03.2017

Ostrzeżenie: (0%)
-----


Ma. Nie jestem pewien czy jestem dobrze zrozumiany. Interesuje jakiś sprytny sposób na skreślenie wszystkich atrybutów <blockquote> zdefiniowanych w all-light.min.css. Nie chcę tego robić w ten sposób, że do swojego <blockquote> wpisuję po kolei:
Kod
max-width: myvalue;
margin-left: myvalue;
margin-right: myvalue;
text-align: myvalue;
font: myvalue;
font-family: myvalue;
letter-spacing: myvalue;
color: myvalue;

itd.

Wydaje się stratą czasu szukanie odpowiednich wartości atrybutów, skoro potrzebuję wartości takich jakie byłyby wtedy gdyby wykreślić z oryginalnego blockquote to, co jeszcze nie jest wykreślone.
Go to the top of the page
+Quote Post
trueblue
post 22.04.2020, 14:16:28
Post #13





Grupa: Zarejestrowani
Postów: 6 761
Pomógł: 1822
Dołączył: 11.03.2014

Ostrzeżenie: (0%)
-----


Nie ma jeszcze w pełni takiej możliwości: https://developer.mozilla.org/en-US/docs/Web/CSS/revert


--------------------
Go to the top of the page
+Quote Post
viking
post 22.04.2020, 14:16:39
Post #14





Grupa: Zarejestrowani
Postów: 6 365
Pomógł: 1114
Dołączył: 30.08.2006

Ostrzeżenie: (0%)
-----


Gdyby to był SASS mógłbyś stosować np ify. W CSS wszystkie wartości są dziedziczone i jeśli raz wystąpiły jedyne co możesz zrobić to je nadpisać np domyślnymi.


--------------------
Go to the top of the page
+Quote Post
stellatus
post 22.04.2020, 14:27:29
Post #15





Grupa: Zarejestrowani
Postów: 196
Pomógł: 0
Dołączył: 9.03.2017

Ostrzeżenie: (0%)
-----


Spoko. Problem chyba jest rozwiązany. Plik style.css w child theme WordPressa chyba ma właściwość, której potrzebuję. Wygląda na to, że wszelkie selektory jakie tam wpiszę są jedynie obowiązujące. Jutro będę to jeszcze testował i dam znać.

Edycja:
Jednak się pomyliłem, ale wymyśliłem, że można byłoby usuwać JS-em fragmenty arkusza, które są niepotrzebne, np.:

Kod
function ShowResults(element, index) {
  document.styleSheets[NUMBER X].cssRules[NUMBER Y].style.removeProperty(element)
            }
            let input = document.styleSheets[NUMBER X].cssRules[NUMBER Y].style
            let inputList = Array.prototype.slice.call(input)
            inputList.forEach(ShowResults)


Edycja:
Rozwiązanie jednak marne. Każda przeglądarka indeksuje arkusze stylów inaczej. To raczej trzeba zrobić poprzez jakąś kwerendę, a nie wskazywanie konkretnych indeksów.

Ten post edytował stellatus 23.04.2020, 13:34:32
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 19.04.2024 - 21:04