Kezdőoldal » Számítástechnika » Weblapkészítés » Bootstrap 4 segítség. Hogyan...

Bootstrap 4 segítség. Hogyan alakítsam át a kódot?

Figyelt kérdés

Egy alapvetően egyszerű dologról lenne szó, de azt hiszem nem látom a fától az erdőt.


[link]


Ez a felállás lenne a cél.


Itt a jelenlegi kód: [link]


Hogyan oldjam meg, hogy a 2-es doboz mobil nézetben mindig felülre kerüljön? Nyilván a jelenlegi struktúrában nem maradhat.

A nehézséget az okozza, hogy a jobbszélső oszlop tartalma közé kellene "beékelni" a bal oldali oszlopot.


Köszi a segítséget!



2021. szept. 29. 13:33
1 2
 1/13 A kérdező kommentje:

Mivel másnak sem volt jobb ötlete, a határidő meg szorít:

[link]

Megoldottam "parasztba". A 2-es blokk nem duplikálható, mert a benne lévő tartalom ID-kkal van ellátva és megzavarodik a JS (érthető módon), de a 3-assal ez megoldható. Csak nem szép.


Ha valakinek van jobb megoldása akkor azt szívesen várom.

2021. szept. 29. 23:15
 2/13 anonim ***** válasza:

flex-order.

Bocs, ha kajáltam jobban kifejtem, kóddal.

2021. szept. 30. 12:03
Hasznos számodra ez a válasz?
 3/13 anonim ***** válasza:
Flex-ről hallottál? [link]
2021. szept. 30. 16:24
Hasznos számodra ez a válasz?
 4/13 A kérdező kommentje:

Igen, tudom, a bootstrap is azt használja. :)


.row {

display: -ms-flexbox;

display: flex;

-ms-flex-wrap: wrap;

flex-wrap: wrap;

margin-right: -15px;

margin-left: -15px;

}


vagy épp az order:

.order-md-2 {

-ms-flex-order: 2;

order: 2;

}


Tehát ezt használtam én is. A gond ott van, hogy a fenti (képen) látható megoldást szeretném elérni, de attól "szebb" módon, mint a "megoldásom" (miszerint az oszlop alsó felét elrejtem mobil nézetben felül, alul pedig a "másolatát" megjelenítem). Tehát nem szeretném ha egy elem is 2x szerepelne.


És az "1"-es div-et kellene a másik oszlop közepére beiktatni, ami nyilván nem lehetséges. Vagy eleve az oszlopokat kellene elengedni? Szóval gondolom értitek mi a problémám. Teljesen triviálisnak tűnik de nem áll össze valahogy...

2021. szept. 30. 17:21
 5/13 anonim ***** válasza:

Bootstrap nélkül:


Két felé kell osztanod a képernyőt: bal oldalt az 1-es dobozkád lesz, jobb oldalt pedig szükséged van egy konténerre aminek adnék egy display: flex-et



Mobilon: minden doboznak a szélességét 100%-ra növelném (realtív a nagy konténer), így a jobb oldal be fog csúszni a bal oldali fél alá, így oszlopot kapsz.


Bootstrap: ez a legegyszerűbb: container > row > col-ok


12 egységes rész van, col-6 col-6 két oszlop


col-12 az egész képernyő


a col és a szám közti betűkód, pedig a képernyő nagyságát jelöli


[link]

[link]

2021. szept. 30. 22:57
Hasznos számodra ez a válasz?
 6/13 A kérdező kommentje:

#5 Öhm.. Azt hiszem nem teljesen érted a problémát. (nézd meg kérlek a fenti kódokat amiket linkeltem)


Pontosan ezt csináltam. :)


A gond (vagy "feladat"), hogy a jobb oldali oszlopban van két "doboz" és azok közé kellene becsúsznia a bal oldali oszlopnak. (lásd kép)


Nyilván ebben az elrendezésben vagy fölé vagy alá tudom berakni a teljes jobb oldali oszlopot... de így a 2-es és 3-as is egy helyre kerül. Na az nekem nem jó.

(Ezért csináltam azt a megoldást -lásd második kód-, hogy a 3-as doboz az 1-es alatt és fölött is létezik, és a képernyő méretétől függően elrejtem/megjelenítem. Csak ez ugye nem "szép" megoldás... erre keresek egy olyan variációt, ahol minden doboz csak 1x szerepel a HTML kódban és szimplán CSS-el van megvalósítva a képen látható elrendezés.)

2021. szept. 30. 23:12
 7/13 anonim ***** válasza:
esetleg float + @media opció?
2021. okt. 1. 08:16
Hasznos számodra ez a válasz?
 8/13 A kérdező kommentje:

#7 Ezt kifejtenéd kérlek kicsit pontosabban? Mármint nyilván értem mi a float és @media, csak ugye flex konténeren belül nem használhatsz float-ot.

[link]


Most jelenleg így néz ki:

[link]

(így picit látványosabb mint a pastebin-es kód)


Tehát itt szeretném elérni, hogy a HTML-ben mindhárom doboz csak 1x szerepeljen, de az itt látható (és kipróbálható) működés megmaradjon. A jelenlegi módon is működik, de szimplán szakmailag érdekel, hogy hogyan lehetne ezt szebben megoldani, mert őszintén szólva baromira nem tetszik így. (pl ha template engine-t használsz és a 3-as doboz tartalmát másik fájlból húzod be, akkor nagyon nem jó, ha mondjuk egy formot tartalmaz és ugyanazok az ID-k több elemnél is szerepelnek az oldalon, mivel kétszer van betöltve csak az egyik mindig el van rejtve)

2021. okt. 1. 08:56
 9/13 anonim ***** válasza:

Tízen éve nem foglalkoztam weblappal, de valami ilyenre gondoltam.

Bootstrap nélkül:


<html>

<head>

<style>

div {width:100%;}

.div1 {background: red;}

.div2 {background: yellow;}

.div3 {background: green;}


@media screen and (min-width: 480px) {

div {width:50%;float: right;}

.div2 {float:left;}

}

</style>

</head>


<body>

<div class="div1">Div 1</div>

<div class="div2">Div 2</div>

<div class="div3">Div 3</div>

</body>

</html>

2021. okt. 1. 19:25
Hasznos számodra ez a válasz?
 10/13 A kérdező kommentje:

#9

Hmm. Köszi..

Mindenképpen a flex-el akartam kombinálni (mivel bootstrapre épül) de néha a kevesebb több. :)

2021. okt. 4. 17:55
1 2

Kapcsolódó kérdések:





Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!