За последние 24 часа нас посетили 22774 программиста и 1271 робот. Сейчас ищут 812 программистов ...

Эксперименты с CSS

Тема в разделе "HTML и CSS", создана пользователем TeslaFeo, 11 фев 2017.

  1. TeslaFeo

    TeslaFeo Старожил

    С нами с:
    9 мар 2016
    Сообщения:
    2.989
    Симпатии:
    759
    Приветствую вас, уважаемые обитатели форума!

    По наводке Fell-x27 Полез в анимации CSS 3.
    Ибо jQuery конечно хорош, но не всегда уместен.

    Внимание! Слабонервным дальше не читать, ибо вопрос, возможно, глупый!

    Возник вопрос, можно ли с помощью CSS сделать блок задвигающийся за пределы экрана по нажатию.
    Видел конструкции с вложенными селекторами и подумал "Будет так работать или нет" (так, как ниже).
    Пытаюсь сделать так:

    HTML:
    1.  
    2. <div id="chbxCont">
    3.      
    4.             <input type="checkbox" id="chbx" />
    5.      
    6. </div>
    7.  
    Код (CSS):
    1. #chbx:checked {
    2.     #chbxCont {margin-left:-150px;}
    3. }
    Если прокатит, то можно сделать label и дальше думаю не надо объяснять как это работает))

    Заранее благодарю за терпимость.
     
  2. alexblack

    alexblack Старожил

    С нами с:
    20 янв 2016
    Сообщения:
    640
    Симпатии:
    381
    TeslaFeo нравится это.
  3. TeslaFeo

    TeslaFeo Старожил

    С нами с:
    9 мар 2016
    Сообщения:
    2.989
    Симпатии:
    759
    Изначальная задумка предполагала, что останется краешек, кликнув по которому можно будет его потом выдвинуть обратно.
    Но всё равно большое спасибо за новые знания. За это время пришла в голову еще одна мысль, ща проверю и выложу...
     
  4. TeslaFeo

    TeslaFeo Старожил

    С нами с:
    9 мар 2016
    Сообщения:
    2.989
    Симпатии:
    759
    В общем, сырая версия выглядит вот так:
    HTML:
    1.  
    2. <label id="chbxCont"><input type="checkbox" id="chbx" /> Здесь могла быть Ваша реклама</label>
    3.  
    Код (CSS):
    1. #chbxCont {
    2.  
    3. padding:5px;
    4. border:1px solid #ffaaaa;
    5. margin:10px 10px 10px 0px;
    6. background-color:#ffffff;
    7.  
    8.  
    9. }
    10.  
    11. #chbx {
    12.  
    13. transition:1s;
    14.  
    15. }
    16.  
    17. #chbx:checked {
    18.  
    19. margin-left:-200px;
    20.  
    21. }
    Остается только спрятать сам чек бокс.

    А теперь можно почитать критику ибо это использование не по назначению. :)
    Но ИМХО выглядит интересно...
     
  5. Fell-x27

    Fell-x27 Суперстар
    Команда форума Модератор

    С нами с:
    25 июл 2013
    Сообщения:
    12.155
    Симпатии:
    1.769
    Адрес:
    :сердА
    Анимировать маржины, паддинги и прочие топы-лефты чисто вот для анимации никогда не стоит. Плавные переходы на изменения этих значений можно ставить, но использовать их самих для движения чего-то нельзя. Это вызвает каскадный пересчет DOM-а. Используй свойство transformation CSS3.
     
    TeslaFeo нравится это.
  6. Fell-x27

    Fell-x27 Суперстар
    Команда форума Модератор

    С нами с:
    25 июл 2013
    Сообщения:
    12.155
    Симпатии:
    1.769
    Адрес:
    :сердА
    У тебя там используется
    Код (Text):
    1. -webkit-transition
    Так делать тоже не стоит. Во-первых, это префиксное свойство, которое не будет работать в том же фаерфоксе. Во-вторых, transition уже несколько как в префиксах не нуждается.
     
  7. alexblack

    alexblack Старожил

    С нами с:
    20 янв 2016
    Сообщения:
    640
    Симпатии:
    381
    По поводу вендорных префиксов знаю,просто не стал перечислять все, так как пытался визуализировать идею ТС,за линк спасибо,добавил в закладки
     
  8. Fell-x27

    Fell-x27 Суперстар
    Команда форума Модератор

    С нами с:
    25 июл 2013
    Сообщения:
    12.155
    Симпатии:
    1.769
    Адрес:
    :сердА
    А их перечислять вовсе не надо. Можно просто писать 'transition' и все будет отлично работать.