Mam problem w sass

Piotr Kułakowski
  • Rejestracja:ponad 4 lata
  • Ostatnio:ponad 4 lata
  • Postów:2
0

Witam,

robię sobie właśnie swój pierwszy poważniejszy projekt i nie wiem dlaczego to nie działa:
1cae615c7111fa619ea77c5c8812663b.png

Czy ktoś mógł by mi pomóc? (Chodzi o ten fragment kodu, który zaznaczyłem)

Tu daję fragment kodu HTML dotyczący tego CSS jak by był potrzebny:
063b9b3c18911fce2b12723ad9df2904.png

Pozdrawiam

edytowany 1x, ostatnio: Piotr Kułakowski
cerrato
kod proszę wrzucaj jako tekst, a nie obrazek.
Patryk27
Moderator
  • Rejestracja:ponad 17 lat
  • Ostatnio:prawie 2 lata
  • Lokalizacja:Wrocław
  • Postów:13042
3

nie działa

Co to znaczy?


Piotr Kułakowski
  • Rejestracja:ponad 4 lata
  • Ostatnio:ponad 4 lata
  • Postów:2
0

Witam,

tu macie to w postaci kodu:
sass:

Kopiuj
.filter {
    background-color: $main_bg_color;
    @include position(relative);
    height: auto;
    flex-basis: 16%;
    border-radius: 5px;
    z-index: 3;
    margin-right: 5px;
    &__fixed {
        display: flex;
        flex-direction: column;
        @include position(fixed);
        padding: 10px;
        width: 16%;
    }
    &__filter-radio {
        margin-right: 10px;
        &:checked+.filter__filter-elements {
            background-color: #fff;
            border: 1px solid #000;
            border-radius: 5px;
        }
    }
    &__filter-elements {
        margin: 5px;
        background-color: $main_bg_color;
        border: none;
        padding: 5px;
        font-size: 16px;
        transition: 0.4s;
        &:hover {
            background: #fff;
            border-radius: 5px;
        }
    }
}

HTML :

Kopiuj
            <aside class="filter">
                <div class="filter__fixed">
                    <label class="filter__filter-elements filter__filter-elements--all"><input class="filter__filter-radio" type="radio" name="filter" checked>Wszystkie</label>
                    <label class="filter__filter-elements filter__filter-elements--web-pages"><input class="filter__filter-radio" type="radio" name="filter">Strony WWW</label>
                    <label class="filter__filter-elements filter__filter-elements--seo"><input class="filter__filter-radio" type="radio" name="filter">SEO</label>
                    <label class="filter__filter-elements filter__filter-elements--ux-ui-design"><input class="filter__filter-radio" type="radio" name="filter">Projektowanie Stron WWW</label>
                    <label class="filter__filter-elements filter__filter-elements--web-shops"><input class="filter__filter-radio" type="radio" name="filter">Sklepy Internetowe</label>
                    <label class="filter__filter-elements filter__filter-elements--landing-page"><input class="filter__filter-radio" type="radio" name="filter">Landing Page</label>
                </div>
            </aside>

I jeszcze jedno. Problem mam z kodem Sass, źle wcześniej grafiki wstawiłem. Powinny byś wstawione na odwrót.

Jeśli chodzi o to co mi nie działa to chciałem zrobić tak, że jeśli któreś z radio o klasie filter_filter-radio jest zaznaczony to żeby jego label o klasie filter_filter-elements zmienił swój background-color na biały, dostał border 1px solid i border-rudius 5px. A tak się nie dzieje, dlatego proszę o pomoc.

edytowany 1x, ostatnio: cerrato
Freja Draco
Freja Draco
  • Rejestracja:około 7 lat
  • Ostatnio:ponad 3 lata
  • Postów:3394
2
Piotr Kułakowski napisał(a):

chciałem zrobić tak, że jeśli któreś z radio o klasie filter_filter-radio jest zaznaczony to żeby jego label o klasie filter_filter-elements zmienił swój background-color na biały, dostał border 1px solid i border-rudius 5px. A tak się nie dzieje, dlatego proszę o pomoc.

Współczesny CSS pozwala wpływać jedynie na elementy występujące w kodzie PO elemencie, który łapiesz selektorem i uzależniasz wygląd kolejnych od jego stanu. Więc musisz je przestawić, a później przywrócić żądaną kolejność np. za pomocą order.

Obczaj najpierw, jak działa CSS zanim się weźmiesz za SASS i inne wynalazki.

p.s. Widzę, że wrzuciłeś tag INPUT do wnętrza LABLE. Stylu nadrzędnego elementu też nie da się modyfikować w zależności od stanu dziecka. Więc, j.w.
https://www.w3schools.com/tags/tag_label.asp


edytowany 1x, ostatnio: Freja Draco
ŁF
Moderator
  • Rejestracja:ponad 22 lata
  • Ostatnio:około 9 godzin
0

BTW te podkreślenia i podwójne myślniki wyglądają paskudnie.

[edit]
Ciągnąc poboczny wątek (abstrahując od ewentualnej niepoprawności Twojego html i css):

Kopiuj
            <aside class="filter">
                <div class="element-container">
                    <label class="all">
                        <input type="radio" name="filter" checked>
                        Wszystkie
                    </label>
                    <label id="web-pages">
                        <input type="radio" name="filter">
                        Strony WWW
                    </label>
                    <label id="seo">
                        <input type="radio" name="filter">
                        SEO
                    </label>
                    <label id="ux-ui-design">
                        <input type="radio" name="filter">
                        Projektowanie Stron WWW
                    </label>
                    <label id="web-shops">
                        <input type="radio" name="filter">
                        Sklepy Internetowe
                    </label>
                    <label id="landing-page">
                        <input type="radio" name="filter">
                        Landing Page
                    </label>
                </div>
            </aside>
Kopiuj
.filter {
    background-color: $main_bg_color;
    @include position(relative);
    height: auto;
    flex-basis: 16%;
    border-radius: 5px;
    z-index: 3;
    margin-right: 5px;

    .element-container {
        display: flex;
        flex-direction: column;
        @include position(fixed);
        padding: 10px;
        width: 16%;

        > input[name=filter] {
            margin-right: 10px;

            &:checked {
                background-color: #fff;
                border: 1px solid #000;
                border-radius: 5px;
            }
        }

        > label {
            margin: 5px;
            background-color: $main_bg_color;
            border: none;
            padding: 5px;
            font-size: 16px;
            transition: 0.4s;

            &:hover {
                background: #fff;
                border-radius: 5px;
            }
        }
    }
}

edytowany 2x, ostatnio: ŁF
Zobacz pozostałe 9 komentarzy
ŁF
Ponawiam pytanie
jarekr000000
@ŁF 1. nie znam Cie, jesteś anonimowym userem - równie dobrze możesz być przedszkolakiem z dobrą polszczyzną i wyobraźnią. (nie chcę Cię urazić, ani nawet nie wydaje mi się taki scenariusz prawdopodony- ale w necie takie rzeczy się zdarzają). 2. Sam znam trochę seniorów przez zasiedzenie - to termin, który pojawia się na forum - sama wysługa lat nie ma żadnego znaczenia. Można klepać w kółko jedną rzecz, którą się nauczyło robić w dwa miesiące i z tego żyć.
ŁF
Anonimowy to akurat nie jestem, a sądząc po dacie utworzenia konta, to przedszkolakiem przestałem być przynajmniej kilkanaście lat temu. Mniejsza o to. Doświadczenie doświadczeniem. w sumie tylko ja mam pewność co do tego, czy prawdziwe czy nie, dość że BEM to kupa, bo: 1) ma zbędne podwójne separatory 2) ma separatory inne niż w standardzie 3) ma unikalne nazw klas: a) od tego są id b) przeczy to idei CSS c) uniemożliwia współdzielenie styli 4) (kwestia gustu) jest brzydkie.
jarekr000000
@ŁF Dzieki - tak jak pisałem wyżej do BEM mam mniej więcej takie same zarzuty, ale też do tej pory nie spotkałem frontendowca, który by to rozumiał :-) A kilku było naprawdę dobrych.
Freja Draco
Freja Draco
a po drugie wiele ludzi z tej metodologii korzysta Wielu ludzi korzysta też z Bootstrapa, co nie zmienia faktu, że Botstrap (podobnie jak BEM) stawia na głowie zasadniczy cel istnienia CSS czyli separację warstwy semantycznej i opisu wyglądu.
Freja Draco
Freja Draco
  • Rejestracja:około 7 lat
  • Ostatnio:ponad 3 lata
  • Postów:3394
1
ŁF napisał(a):

BTW te podkreślenia i podwójne myślniki wyglądają paskudnie.

Też tak uważam, ale takie właśnie koszmarnie przegadane zapisy zaleca jedna z obecnych metodologii CSS.
Ale jak dla mnie to wracanie innymi drzwiami do zupa-kodu z czasów przed CSS-em.


Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.