Próbuję, aby czcionka w elemencie DIV odpowiadała na okno przeglądarki. Jak dotąd działało idealnie, ale nadrzędny element div ma wartość max-width
of 525px
. Dalsza zmiana rozmiaru przeglądarki nie spowoduje zatrzymania zmiany rozmiaru czcionki. To sprawiło, że zacząłem się zastanawiać, czy istnieje coś takiego jak min-font-size
lub max-font-size
, a jeśli czegoś takiego nie ma, czy jest sposób na osiągnięcie czegoś podobnego.
Myślałem, że użycie procentów w font-size
zadziała, ale fragment tekstu nie będzie skalowany zgodnie z nadrzędnym div. Oto co mam:
CSS dla nadrzędnego div:
.textField{
background-color:rgba(88, 88, 88, 0.33);
width:40%;
height:450px;
min-width:200px;
max-width:525px;
z-index:2;
}
CSS dla danego fragmentu tekstu:
.subText{
position:relative;
top:-55px;
left:15px;
font-family:"news_gothic";
font-size:1.3vw;
font-size-adjust:auto;
width:90%;
color:white;
z-index:1;
}
Szukałem długo w Internecie, ale bezskutecznie.
Odpowiedzi:
Nie, nie ma właściwości CSS dla minimalnego lub maksymalnego rozmiaru czcionki. Przeglądarki często mają ustawienie minimalnego rozmiaru czcionki, ale jest to kontrolowane przez użytkownika, a nie autora.
Możesz użyć
@media
zapytań, aby określić niektóre ustawienia CSS w zależności od rzeczy, takich jak szerokość ekranu lub okna. W takich ustawieniach możesz np. Ustawić rozmiar czcionki na określoną małą wartość, jeśli okno jest bardzo wąskie.źródło
max-width:600px;
. Czy mam rację, czy nie zrozumiałem poprawnie informacji pod linkiem?@media
odnosi się do okna przeglądarki? Skąd będzie wiedzieć, że chcę, aby rozmiar mojej czcionki wynosił, powiedzmy, 20 pikseli, gdy nadrzędny element DIV lub okno przeglądarki ma określony rozmiar w pikselach?@media (width:600px)
, to uruchomi poniższy skrypt,@media
gdy szerokość przeglądarki będzie równa 600px?Możesz to zrobić, używając wzoru i uwzględniając szerokość rzutni.
Ustawia to minimalny rozmiar czcionki na 7 pikseli i zwiększa go o .5vw w zależności od szerokości widoku.
Powodzenia!
źródło
0
. Jakieś zagnieżdżonecalc
czy coś?calc()
instrukcja jest przetwarzana, gdy LESS jest kompilowana i przekształca się w prostąpx
wartość. Zmiana rozmiaru nie powoduje ponownego obliczenia. Pomysły czy przemyślenia?Działa dobrze z CSS.
Przeszedłem przez te same problemy i naprawiłem to w następujący sposób.
Użyj stałego rozmiaru „piksela”, aby uzyskać maksymalny rozmiar przy określonej szerokości i większej. Następnie dla różnych mniejszych szerokości użyj względnego „vw” jako procentu ekranu.
Wynik poniżej jest taki, że dostosowuje się on do ekranów poniżej 960 pikseli, ale powyżej utrzymuje stały rozmiar. Dla przypomnienia, nie zapomnij dodać w nagłówku dokumentu html:
Przykład w CSS:
Mam nadzieję, że to pomoże!
źródło
Spóźniam się trochę, nie mam za to wielkiego uznania, po prostu robię mieszankę poniższych odpowiedzi, ponieważ byłem zmuszony zrobić to dla projektu.
Więc odpowiadając na pytanie: nie ma czegoś takiego jak ta właściwość CSS . Nie wiem dlaczego, ale myślę, że to dlatego, że boją się niewłaściwego wykorzystania tej właściwości, ale nie znajduję żadnego przypadku użycia, w którym może to być poważny problem.
Cokolwiek, jakie są rozwiązania?
Umożliwiają nam to dwa narzędzia: zapytania o media i właściwość vw
1) Istnieje "głupie" rozwiązanie polegające na zadawaniu medialnego zapytania dla każdego kroku w naszym css, zmienianiu czcionki ze stałej kwoty na inną stałą. Działa, ale jest to bardzo nudne i nie masz płynnego, liniowego aspektu.
2) Jak wyjaśnił AlmostPitt, istnieje doskonałe rozwiązanie dla minimów:
Minimum to 7 pikseli oprócz 0,5% szerokości widoku. To już jest naprawdę fajne i działa w większości przypadków . Nie wymaga żadnego zapytania o media, wystarczy poświęcić trochę czasu na znalezienie odpowiednich parametrów.
Jak zauważyłeś, jest to funkcja liniowa, podstawowa matematyka uczy, że dwa punkty już znajdują parametry. Następnie ustaw rozmiar czcionki w pikselach, który chcesz dla bardzo dużych ekranów i wersji mobilnej, a następnie oblicz, czy chcesz zastosować metodę naukową. Pomyślałem, że nie jest to absolutnie konieczne i możesz po prostu spróbować.
3) Załóżmy, że masz bardzo nudnego klienta (takiego jak ja), który absolutnie chce, aby tytuł był jedną linijką i nie więcej. Jeśli korzystałeś z rozwiązania AlmostPitt, masz kłopoty, ponieważ twoja czcionka będzie się powiększać, a jeśli masz kontener o stałej szerokości (jak bootstrap zatrzymujący się na 1140px lub coś w dużych oknach). W tym miejscu proponuję skorzystać również z zapytania o media. W rzeczywistości możesz po prostu znaleźć maksymalną wielkość w pikselach, którą możesz obsłużyć w swoim kontenerze, zanim aspekt stanie się niepożądany (pxMax). To będzie Twoje maksimum. Następnie musisz tylko znaleźć dokładną szerokość ekranu, którą musisz zatrzymać (wMax). (Pozwalam ci samodzielnie odwrócić funkcję liniową).
Po tym po prostu zrób
Wtedy jest idealnie liniowy, a rozmiar czcionki przestaje rosnąć! Zwróć uwagę, że nie musisz umieszczać swojej poprzedniej właściwości css (calc ...) w zapytaniu o media pod wMax, ponieważ zapytanie o media jest uważane za bardziej istotne i nadpisze poprzednią właściwość.
Nie sądzę, aby było przydatne tworzenie fragmentu kodu, ponieważ miałbyś problem z wyświetleniem całego ekranu, a ostatecznie nie jest to fizyka jądrowa.
Mam nadzieję, że może to pomóc innym i nie zapomnij podziękować AlmostPittowi za jego rozwiązanie.
źródło
max(*a*px,, *b*vw)
? Ponieważ w moim przypadku nie mogę tolerować naiwnego dodawania, ponieważ wynik jest zbyt duży, ale brzmi to tak, jakbyś sugerował, że mógłbym w jakiś sposób zmniejszyć aib ponad naiwne kwoty - mam problem z obliczeniem matematyki i potrzebują rozwiązania ogólnego, a nie tylko konkretnego przypadku.Jest to faktycznie proponowane w CSS4
Szkic roboczy w W3C
Zacytować:
To faktycznie działałoby w następujący sposób:
Oznaczałoby to dosłownie, że rozmiar czcionki będzie wynosił 5% szerokości widocznego obszaru, ale nigdy nie będzie mniejszy niż 10 pikseli i nigdy nie będzie większy niż 18 pikseli.
Niestety, ta funkcja nie jest jeszcze nigdzie zaimplementowana (nawet na caniuse.com).
źródło
Plecak jest genialny, ale niekoniecznie musisz uciekać się do tworzenia narzędzi takich jak Gulp czy Grunt itp.
Zrobiłem demo przy użyciu niestandardowych właściwości CSS (zmiennych CSS), aby łatwo kontrolować minimalny i maksymalny rozmiar czcionki.
Tak jak to:
źródło
Uzyskałem z nimi gładkie wyniki. Płynie płynnie między 3 zakresami szerokości, jak ciągła funkcja odcinków.
źródło
Możesz użyć Sass do kontrolowania minimalnego i maksymalnego rozmiaru czcionki. Oto genialne rozwiązanie Eduardo Boucasa.
https://eduardoboucas.com/blog/2015/06/18/viewport-sized-typography-with-minimum-and-maximum-sizes.html
źródło
Pamiętaj, że ustawienie rozmiaru czcionki za pomocą px nie jest zalecane ze względu na problemy z dostępnością :
„Definiowanie rozmiaru czcionki w pikselach jest niedostępne, ponieważ użytkownik nie może zmienić rozmiaru czcionki w niektórych przeglądarkach. Na przykład użytkownicy z ograniczonym widzeniem mogą chcieć ustawić rozmiar czcionki znacznie większy niż rozmiar wybrany przez projektanta stron internetowych”. (patrz https://developer.mozilla.org/en-US/docs/Web/CSS/font-size )
Bardziej przystępnym podejściem jest ustawienie
font-size: 100%
w html, który szanuje domyślne ustawienia rozmiaru użytkownika , a NASTĘPNIE użycie wartości procentowych lub jednostek względnych podczas zmiany rozmiaru (em
lubrem
), na przykład za pomocą zapytania @media.(patrz https://betterwebtype.com/articles/2019/06/16/5-keys-to-accessible-web-typography/ )
źródło
Tak, wydaje się, że niektóre przeglądarki w SVG mają pewne ograniczenia. Narzędzie deweloperskie ogranicza to do 8000 pikseli; Następujący dynamicznie generowany wykres nie działa na przykład w przeglądarce Chrome.
Wypróbuj http://www.xn--dddelei-n2a.de/2018/test-von-svt/
źródło