Yêu cầu thg 5 30, 2018 8:25 SA 148 0 1
  • 148 0 1
0

Nhờ giúp đỡ căn nội dung theo chiều cao trong FlexBox

Chia sẻ
  • 148 0 1

mình nhờ mọi người giúp mình căn nội dung cột bên phải ra giữa chiều cao với ạ.

https://codepen.io/Hoangvan/pen/dKPyvW

Mình không biết sử dụng thuộc tính nào của Flexbox để làm như vậy

Cám ơn mọi người nhiều

1 CÂU TRẢ LỜI


Đã trả lời thg 5 30, 2018 8:34 SA
Đã được chấp nhận
+1

Bạn thêm CSS như sau là được:

.content {
  display: flex;
  align-items: center;
}
Chia sẻ
Avatar Hoang vn @wiliamfeng
thg 5 30, 2018 9:07 SA

cám ơn bạn nhưng cách này lại làm chữ view - more của mình nổi bên cạnh phần nội dung kia. Mình ko muốn như vậy

thg 5 30, 2018 9:11 SA

@wiliamfeng Bạn chuyển nhưng element con của .content, nhóm vào trong một div.body thành .content > .body, như này: Screenshot from 2018-05-30 16-09-18.png

CSS bạn vẫn dùng như mình nói ở trên.

Avatar Hoang vn @wiliamfeng
thg 5 30, 2018 9:49 SA

@huukimit , ok bạn , mình cám ơn bạn nhiều nha

thg 5 30, 2018 9:50 SA

@wiliamfeng You're welcome.

Avatar Hoang vn @wiliamfeng
thg 5 30, 2018 1:17 CH

@huukimit bạn ơi, mình làm phiền bạn thêm chút nữa, cũng vẫn là FlexBocx nhưng đây là ví dụ khác của mình.

Bạn cho mình hỏi , làm sao để 2 div cuối ( 4 & 5) nó nằm căn chuẩn được ạ ( ý mình muốn : 4 thì nằm thẳng cột với 1 , 5 thì thẳng cột với 2 ).

https://codepen.io/Hoangvan/pen/MXYbjG

Bạn xem giúp mình với nha. Mình cám ơn bạn nhiều

thg 5 30, 2018 3:50 CH

@wiliamfeng Nếu bạn muốn style như trong hình thì có nhiều cách lắm!

.container{
  max-width: 500px;
  border:solid 1px;
  margin-left: 200px;
  display:flex; /** Important **/
  flex-wrap:wrap; /** Important **/
}

.item{
  margin-top: 10px; 
  margin-bottom: 10px;
  margin-left: 10px; /** Important **/
  height: 60px;
  background:red;
  /** calc(100%/columns - (margin_left_size * (columns+1))/columns): VD: columns = 3; margin_left_size = 10px **/
  flex: 0 0 calc(100%/3 - (10px * 4)/3); /** Important **/
}

/** UPDATE 1: Merge into `.item` code block: Thanks to Nguyen Van Hoang
.item + .item, .item:first-child {
  margin-left: 10px;
}
**/

Screenshot from 2018-05-30 22-42-20.png

thg 5 30, 2018 3:54 CH

Nếu bạn cảm thấy câu trả lời đã phù hợp, nhớ click button màu xanh lá cây để resolve câu hỏi này nhé. hihi

Avatar Mango @vinhnguyen
thg 5 30, 2018 5:48 CH

Hơi dài dòng chút, nhưng mình thấy cũng ok 😄

https://codepen.io/vinhnguyen261/pen/rKaGeK

Avatar Hoang vn @wiliamfeng
thg 5 31, 2018 3:54 SA

@huukimit cám ơn bạn Kim nhiều nhé

thg 5 31, 2018 3:54 SA

@wiliamfeng Không có chi. hihi

Avatar Hoang vn @wiliamfeng
thg 5 31, 2018 3:54 SA

@vinhnguyen cám ơn Ngọc Vinh nhiều 😃)

Avatar Hoang vn @wiliamfeng
thg 5 31, 2018 8:42 SA

@huukimit mình có thắc mắc này muốn hỏi bạn, tại sao mình không lấy cái margin-left trong đoạn này:

.item + .item, .item:first-child {
  margin-left: 10px;
}

bỏ vào chỗ này:

.item{
  margin-top: 10px; 
  margin-bottom: 10px;
  height: 60px;
  background:red;
  flex: 0 0 calc(100%/3 - (10px * 4)/3);
}

luôn. Tại sao lại phải viết riêng như vậy ? Mình thay thử thì không thấy có gì khác

thg 5 31, 2018 8:47 SA

@wiliamfeng Cái đoạn dưới lúc trước đó mình đang làm cách khác vẫn để đấy thôi. Bỏ nó vào cho gọn đi bạn. (facepalm)

Avatar Hoang vn @wiliamfeng
thg 6 1, 2018 9:26 SA

vẫn chưa ổn các bạn ạ, nếu mình set max-width cho mỗi item thì hình như lại không được : https://codepen.io/Hoangvan/pen/jKPoOr

thg 6 1, 2018 9:29 SA

@wiliamfeng Ủa, bạn muốn hiển thị grid như nào mà sao lại set thêm max-width vậy nhỉ?

Avatar Hoang vn @wiliamfeng
thg 6 1, 2018 9:31 SA

@huukimit hi, phát sinh vấn đề là trong item đó của mình có ảnh , mà ảnh thì nó rộng khoảng 300px thôi nên mình phải fix max-width cho item tối đa là 300px để ảnh nó không bị vỡ đó bạn

thg 6 1, 2018 9:34 SA

@wiliamfeng Vậy thì mình nghĩ bạn cần set max-width cho cái ảnh thay vì set cho item. Vì item là một thành phần trong grid, mỗi item cần cái width đều nhau để vừa khít với container. Cụ thể cái ảnh chỉ được phép max-width = 100% item width.

Avatar Hoang vn @wiliamfeng
thg 6 1, 2018 9:42 SA

@huukimit thế thì lại không được bạn à, vì như vậy thì ảnh sẽ không rộng hết khung mà => nhìn thế cái khung bị thừa hai bên coi xấu lắm, mình muốn khung chỉ co giãn trong khoảng kích thước tối đa của ảnh thôi. Các bạn giúp mình nhé !

Avatar Hoang vn @wiliamfeng
thg 6 2, 2018 4:04 SA

bạn nào hỗ trợ mình với ạ

thg 6 2, 2018 7:59 SA

Screenshot from 2018-06-02 14-53-11.png

@wiliamfeng Như mình nói ấy bạn, với cách trên bạn nên style max-width cho cái ảnh bên trong .item = 100% item width. Chứ người ta không để max-width cho .item. Như thế sẽ làm cái style grid của bạn không còn nghĩa lý nữa.

Chúc bạn thành công nhé.

Viblo
Hãy đăng ký một tài khoản Viblo để nhận được nhiều bài viết thú vị hơn.
Đăng kí