Myślę, że chcesz coś innego niż to, co prosisz.
Zapytania o media mają na celu zapytanie o coś konkretnego dla urządzenia (media), którego używasz, a nie animacje czy inne elementy wizualne.
Aby odbudować przykład, który tu zamieściłeś, jest dość prosty do przebudowania, ale ma (z wyjątkiem jego reakcji) nic wspólnego z zapytaniami o media.
Utworzono normalną stronę z dwoma stanami. W jednym stanie widoczna jest tylko zawartość, aw drugim stan menu jest widoczne, a zawartość jest częściowo (zajęta przez szerokość menu) przeniesiona poza ekran.
Deklarujesz, który element i która opcja ma być przejściowa. Oto przykład, gdzie skonfigurować, że zmiana szerokość lub margines elementu rozpocznie animację, która trwa 3s:
div {
transition: width 3s, margin 3s;
-moz-transition: width 3s, margin 3s;
-webkit-transition: width 3s, margin 3s;
-o-transition: width 3s, margin 3s;
}
Przełączanie pomiędzy tymi dwoma stanami odbywa się poprzez dodanie CSS-klasę i animacji widzisz jest skonfigurowany przez ustawienie CSS3 o nazwie przejście.
Radzę przeczytać coś takiego https://developer.mozilla.org/en-US/docs/CSS/Tutorials/Using_CSS_transitions
FYI: I odbudować coś takiego stronie pokazałeś, tak jak udowodnić koncepcji: http://jsfiddle.net/W3PF4/
http://stackoverflow.com/questions/12251750/can-media-queries-resize-based-on-a-div-element-instead-of- ten ekran może? I nie, to niemożliwe. – BoltClock
Nie można tego zrobić za pomocą css3, dopóki nie zostanie dodana właściwość @element. Jeśli ktoś używa wydajnego javascript lub jquery do obsługi tego przypadku użycia, to zaakceptowałbym to jako odpowiedź: – 2ne
Wciąż aktywnie szukam odpowiedzi na to prawie roczne pytanie i dzisiaj znalazłem to: http: // codepen. io/2ne/pen/zxBVjR? editors = 110 Nie wiem jak to działa, ale wygląda na to, że odpowiada na pytanie – 2ne