CSS ustawia szerokość, aby wypełnić% pozostałego obszaru


82

Przepraszamy za nieco bzdurny tytuł. Nie mogłem wymyślić, jak lepiej to opisać.

Próbuję zaimplementować gadżet członków Sieci znajomych Google w mojej witrynie (właśnie dostałem się do schematu i chcę go umieścić bez większego przeprojektowania, przynajmniej do testowania).

Mój problem jest następujący:

Mam element div kontenera, który ma szerokość 90% strony głównej (treści). Wewnątrz umieszczam element div w prawo i ustawiam jego szerokość na 300px oraz umieszczam w nim gadżet Google. Chciałbym, aby element div wypełnił 95% miejsca pozostałego po lewej stronie elementu div gadżetu Google.

Nie wiem, czy można mieszać piksele i% z elementami div i szerokościami.

Mam nadzieję, że to ma sens.

Dzięki


Odpowiedzi:


70

To jest. Szukasz układu półpłynnego. Zadanie było pierwotnie świętym Graalem implementacji CSS ... Ale jak widać z tego linku (robią 3 kolumny, 2 naprawione, ale łatwo je zmienić), jest to problem rozwiązany od dawna =)


Wygląda idealnie. Dziękuję Ci. Będę się tym bawić przez weekend.
— Jon

44
To właśnie artykuły takie jak ten potwierdzają mój obawę, że CSS jest daleki od dobrego narzędzia do układania.
— s4y

11
@Sidnicious Jako ktoś, kto zajmuje się tym [konwertowaniem projektów na strony internetowe] jako moim chlebem powszednim, mogę powiedzieć, że jest to o wiele lepsze niż cokolwiek innego, co było wcześniej lub zostało zasugerowane. To nie jest idealne i musisz wiedzieć, jak to działa ... Ale kiedy już to zrobisz, jest to proste.
— Oli,

ale jeśli chcesz zmienić szerokość kolumny, musisz edytować wartości w każdym miejscu. Istnieje irytujące stwierdzenie „jeśli to działa, nie dotykaj go za wszelką cenę i nie krytykuj tego”, ale układ może być znacznie łatwiejszy. jeśli po prostu zmieszasz% i px i odniesiesz się do innych wartości, wszystko będzie o wiele prostsze.
— Jonathan.

1
@Jonathan. Nie ma wątpliwości, że to prawda - zmienne na żywo i artmetyka w CSS znacznie ułatwiłyby sprawę, ale tego nie mamy. Jeśli chcesz rozbić plastyczność, spójrz na LESS / SASS / etc. To połowa rozwiązania.
— Oli,

0

Zrobiłem też szybki eksperyment po przyjrzeniu się wielu potencjalnym rozwiązaniom w każdym miejscu. Próbowałem stworzyć mieszankę płynnych i stałych rzędów i kolumn.

Oto, na czym skończyłem:

http://jsbin.com/hapelawake


0

Jeśli wolisz unikać pływaków i poprawek, użyj układu elastycznego.

.main {
  display: flex;
  width: 90%;
}
.col1 {
  flex-grow: 1;
}
.col2 {
  width: 300px;
  margin-left: 5%;
}
<div class="main">
  <div class="col1" style="background: #518cf3;">Left column</div>
  <div class="col2" style="background: #94d0bb;">Right column</div>
</div>

Uwaga: Dodaj przedrostki dostawców elastycznych, jeśli wymagają tego obsługiwane przeglądarki .


-1

Teraz pracuję nad JS3. JS3 to koncepcja zintegrowanego JavaScript 1.8 w fazie DOM Eased do przetwarzania przychodzącego kodów JS podobnych do natywnych w HTML5, aby przetwarzać je jako język prostoty i integralnego programowania. Poprosiłem o JavaScript w latach 1996 i 1997 po zauważeniu, że nie można uzyskać dostępu do Treści, która była kontrolowana przez skrypty ActiveX. Mój ojciec pracujący w firmie Digital Equipment Corporation, która została zakupiona przez firmy Compaq i HP, zdał sobie sprawę z wagi moich oświadczeń i uzyskał kwalifikacje do pracy dla zamożniejszej korporacji niż HP, Revenio i Ionas, a konkretnie Oracle, aby zrozumieć J2EE. Firma HP może obsługiwać przechodzenie z J2EE do przychodzącego HTML5, ale nie będzie mieć problemów.

Biorąc pod uwagę moją podstawową koncepcję i strukturę wsparcia w rozwoju, JS3 może tworzyć przemierzające przetwarzanie algorytmów przechodzenia OOP HTML5 kwalifikujących się w jQuery lub JS i renderować do kodu przychodzącego, który sprawdza przetwarzanie w celu renderowania zaawansowanych funkcji CSS3 zwykle zarezerwowanych dla JavaScript 1.7 lub JavaScript 1.8, takie jak Liquify zauważone w 2002 roku, kiedy mój brat dołączył do Black Makers at Rutgers i UMASS. Jego umiejętności w zakresie wiedzy przetwarzane w Perlu, Pythonie i innych można przenieść do JS3 oraz CSS4 i HTML6. Obecnie większość nowych kodów CSS3 nie jest ustandaryzowana, ale HTML5 może przetwarzać CSS4, który z czasem miałby nastąpić w 2030 r., Ale może wejść w fazę testów w 2021 r. Aplikacja Media Queries, nieobsługiwana w 2009 r., Kiedy wspomniałem o tym mojemu menedżerowi w HIT Web Design, znany również jako Heritage Web Solutions, Opisałem poważnie z Heidi Kafton, wielkim kierownikiem projektu typu boskiego, został zintegrowany ze standardami sieciowymi w przydziale zapytań o media. Dobrze jest zbadać każde z moich zapytań dotyczących kodowania, ponieważ można je przetworzyć w rozwój nowej technologii. Zapytania o media nie przechodzą aktywnie przez pozostałą przestrzeń i dynamicznie ustawiają szerokość elementu „reszta”, ale w responsywnym CSS4 strona przechodziłaby fazowo przy użyciu stylu formatu CSS odpowiadającego właściwościom (z opcjami Odwróć, Trawers, Odwrotna faza projektu) automatycznie i tylko wymaga Media Queries, jeśli użytkownik chce konkretnie nieskomplikowanego projektu. W przeciwnym razie złożoność można wypracować z CSS3 Responsive w CSS4 za pomocą Invert, Divert, Traverse,

Odniesienie:

Jeśli kompilacja nie reaguje, możesz przetestować i ustawić szerokość elementu, wykonując proste obliczenia matematyczne.

Moje zespoły w Indiach, Pakistanie i innych krajach rozwijających się napotkały podobne problemy podczas tworzenia systemu mediów opartego na elastycznej siatce.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.