100vh là gì

Giới thiệu

Thật dễ dàng để bị kẹt khi làm việc với các kỹ thuật CSS chúng ta biết rõ, nhưng làm như vậy sẽ gây bất lợi cho chúng ta khi những vấn đề mới xuất hiện.

Bạn đang xem: Vh là gì

Khi web tiếp tục phát triển, nhu cầu về các giải pháp mới sẽ tiếp tục phát triển. Vì vậy, với tư cách là nhà thiết kế web và nhà phát triển giao diện người dùng, chúng tôi không còn lựa chọn nào khác ngoài việc biết bộ công cụ của chúng tôi và biết rõ nó.

Điều đó có nghĩa là thậm chí cả các công cụ chuyên môn - những thứ không được sử dụng thường xuyên, nhưng khi cần, đó chính là công cụ thích hợp cho công việc.

Hôm nay, tôi sẽ giới thiệu cho bạn một số công cụ CSS mà bạn có thể chưa biết về trước đây. Các công cụ này là mỗi đơn vị đo lường, như pixel hoặc ems, nhưng có thể bạn chưa bao giờ nghe nói về chúng!

rem

Chúng ta sẽ bắt đầu với một cái gì đó tương tự như cái gì bạn có lẽ đã quen thuộc. Đơn vị em được định nghĩa là kích cỡ font hiện hành. Ví dụ: nếu bạn đặt kích thước phông chữ trên phần tử body, giá trị em của bất kỳ phần tử con nào trong body sẽ bằng kích thước phông chữ đó.Là đơn vị tham chiếu tỷ lệ so với phần tử cha của nó dựa thuộc tính font-size. Ví dụ bạn đặt cho font-size cho phần tử cha của nó là 10px thì nếu bạn sử dụng em trong khu vực phần tử đó thì 1em = 10px. Tương tự 2em = 10*2 = 20px;

body> div class="test">Testdiv>body>body { font-size: 14px;}div { font-size: 1.2em; // calculated at 14px * 1.2, or 16.8px}Ở đây, div sẽ có kích thước phông chữ là 1.2em. Đó là 1,2 lần kích cỡ phông chữ mà nó đã thừa hưởng, trong trường hợp này là 14px. Kết quả là 16.8px.

Tuy nhiên, những gì xảy ra khi bạn thác các kích thước phông chữ được xác định bên trong nhau? Trong đoạn tiếp theo chúng ta áp dụng chính xác cùng một CSS như trên. Mỗi div thừa kế kích thước phông chữ từ cha mẹ của nó, cho chúng ta dần dần tăng kích thước phông chữ.

body> div> Test div> Test div> Test div> div> div>body>

Tuy nhiên trong một số trường hợp, việc font size trong div hiện tại ta đang làm việc base trên font-size cha của nó đôi khi gây ra sự khó khăn trong quá trình làm việc. Có quá nhiều phụ thuộc font-size trong một website lớn, để tránh điều này thì tốt nhất chúng ta nên base trên một giá trị font size duy nhất. Chính vì vậy mà "rem" ra đời, "R" trong rem viết tắt của "root"; điều này bằng với bộ font được thiết lập ở phần tử gốc; trong hầu hết các trường hợp đó là thành phần html.

html { font-size: 14px;}div { font-size: 1.2rem;}Trong cả ba div được lồng nhau trong ví dụ trước, phông chữ sẽ đánh giá là 16.8px.

Good for Grids

Rems không chỉ hữu ích cho kích thước font. Ví dụ, bạn có thể dựa vào entire grid system hoặc UI style library trên phông chữ gốc của HTML bằng cách sử dụng rem và sử dụng rộng rãi của nó ở những nơi cụ thể. Điều này dự đoán cho bạn font sizing và scaling

.container { width: 70rem; // 70 * 14px = 980px}Theo khái niệm, ý tưởng đằng sau một chiến lược như thế này là để cho phép giao diện của bạn được mở rộng với kích thước nội dung của bạn. Tuy nhiên, nó có thể không nhất thiết phải có ý nghĩa nhất cho mỗi trường hợp.

vh and vw

Kỹ thuật thiết kế web phản ứng phụ thuộc rất nhiều vào các quy tắc tỷ lệ phần trăm. Tuy nhiên, tỷ lệ CSS không phải lúc nào cũng là giải pháp tốt nhất cho mọi vấn đề. Chiều rộng CSS tương đối so với phần tử cha chứa gần nhất. Điều gì sẽ xảy ra nếu bạn muốn sử dụng chiều rộng hoặc chiều cao của khung nhìn thay vì chiều rộng của phần tử gốc? Đó chính xác là những gì các đơn vị vh và vw cung cấp.

Xem thêm: #1 V Là Icon Gì ? Nên Sử Dụng Trong Hoàn Cảnh Nào? Icon =]], :]], :3, :V, ^^ Là Gì

Phần tử vh bằng 1/100 chiều cao của khung nhìn. Ví dụ: nếu chiều cao của trình duyệt là 900px, 1vh sẽ đánh giá là 9px. Tương tự, nếu chiều rộng khung nhìn là 750px, 1vw sẽ đánh giá đến 7.5px.

Có vẻ như vô tận sử dụng cho các quy tắc này. Ví dụ: một cách rất đơn giản để thực hiện các trang trình bày có chiều cao đầy đủ hoặc gần chiều cao toàn bộ có thể đạt được bằng một dòng CSS:

.slide { height: 100vh;}Hãy tưởng tượng bạn muốn một tiêu đề được đặt để lấp đầy chiều rộng của màn hình. Để thực hiện việc này, bạn sẽ thiết lập một kích thước phông chữ bằng vw. Kích thước đó sẽ được mở rộng theo chiều rộng của trình duyệt.

vmin and vmax

737/5000Trong khi vh và vm luôn liên quan đến độ cao và chiều rộng của khung nhìn, vmin và vmax có liên quan đến chiều cao và chiều rộng tối đa hoặc tối thiểu, tùy thuộc vào kích thước nhỏ hơn và lớn hơn. Ví dụ: nếu trình duyệt được đặt chiều rộng 1100px và chiều cao 700px, 1vmin sẽ là 7px và 1vmax sẽ là 11px. Tuy nhiên, nếu chiều rộng được đặt là 800px và chiều cao đặt là 1080px, vmin sẽ bằng 8px trong khi vmax sẽ được đặt thành 10.8px.

Vậy, khi nào bạn có thể sử dụng các giá trị này?

Hãy tưởng tượng bạn cần một phần tử luôn hiển thị trên màn hình. Sử dụng chiều cao và chiều rộng đặt thành giá trị vmin dưới 100 sẽ cho phép điều này. Ví dụ, một phần tử hình vuông luôn chạm vào ít nhất hai mặt của màn hình có thể được định nghĩa như sau:

.box { height: 100vmin; width: 100vmin;}

Nếu bạn cần một hộp hình vuông luôn bao gồm khung nhìn có thể nhìn thấy [luôn chạm vào cả bốn mặt của màn hình], hãy sử dụng các quy tắc tương tự trừ với vmax.

.box { height: 100vmax; width: 100vmax;}

Sự kết hợp của các quy tắc này cung cấp một cách rất linh hoạt để sử dụng kích thước của khung nhìn theo những cách mới và thú vị.

ex and ch

Các đơn vị ex và ch, tương tự như em và rem, dựa vào phông chữ và cỡ chữ hiện tại. Tuy nhiên, không giống như em và rem, các đơn vị này cũng dựa vào gia đình phông chữ vì chúng được xác định dựa trên các phép đo cụ thể về phông chữ.

Đơn vị cũ được định nghĩa là "x chiều cao của phông chữ hiện thời hoặc một nửa của một em". Chiều cao của một phông chữ là chiều cao của chữ thường x của phông chữ đó. Thường thì đây là về ở giữa đánh dấu của phông chữ.

Có nhiều cách sử dụng cho loại đơn vị này, hầu hết trong số chúng là cho các điều chỉnh vi mô typographic. Ví dụ: phần tử sup, viết tắt của superscript, có thể được đẩy lên trong đường bằng vị trí tương đối và giá trị dưới cùng là 1ex. Tương tự như vậy, bạn có thể kéo một phần tử subscript xuống. Mặc định mặc định của trình duyệt cho phép sử dụng các quy tắc dọc thẳng đứng cụ thể và superscript và subscript nhưng nếu bạn muốn kiểm soát chi tiết hơn, bạn có thể xử lý loại rõ ràng hơn như sau:

sup { position: relative; bottom: 1ex;}sub { position: relative; bottom: -1ex;}

Tổng kết:

Theo dõi sự phát triển và mở rộng của CSS là rất quan trọng để bạn biết tất cả các công cụ trong bộ công cụ của bạn. Có lẽ bạn sẽ gặp phải một vấn đề cụ thể đòi hỏi một giải pháp bất ngờ bằng cách sử dụng một trong những đơn vị đo lường này tối nghĩa hơn. Dành thời gian để đọc thông số kỹ thuật mới.

Tham khảo:

//webdesign.tutsplus.com/articles/7-css-units-you-might-not-know-about--cms-22573

Khi làm việc với CSS, ai cũng muốn hoàn thành công việc nhanh và hiệu quả. Vì vậy, chúng ta luôn tìm hiểu các mẹo và thủ thuật hay giúp cho công việc thiết kế giao diện được dễ dàng hơn. Trong bài này, hãy cùng Bizfly Cloud  tìm hiểu về các đơn vị đo lường thú vị trong CSS mà có thể bạn chưa biết.

"em" và "rem"

Khi nói tới kích thước font chữ [font-size], nhiều người quen thuộc với việc sử dụng đơn vị pixel [px]. VD: font-size:16px.

Bản thân pixel là đơn vị cố định và sử dụng pixel không có gì sai. Tuy nhiên trong nhiều trường hợp, sử dụng đơn vị em thay vì px sẽ dễ dàng hơn và ít gây nhầm lẫn.

Vậy "em" là gì?

"em" là một đơn vị của thuộc tính font-size của các phần tử con. "em" có giá trị bằng đúng font-size của phần tử cha.

Ví dụ, khi bạn thiết lập font-size cho phần tử là 16px, thì giá trị em của bất kỳ phần tử con nào trong sẽ là 16px. Tức 1em=16px, 2em=32px, v.v.

Test

body {

font-size: 16px;

}

div {

font-size: 1.2em; // ta tính được 1.2em = 16px * 1.2 = 19.2px

}

Ta có thể dễ dàng tính được

có kích thước font chữ là 19.2px. Vì font size của nó có giá trị bằng 1.2 lần [1.2em] font chữ của phần tử cha [body] của nó là 16px.

Tuy nhiên, điều gì sẽ xảy ra khi bạn lồng nhiều phần tử sử dụng em vào nhau? Hãy quan sát ví dụ dưới đây, ta lồng nhiều snippet vào với nhau với cùng giá trị 1.2em. Khi đó, mỗi

kế thừa font-size từ phần tử cha của nó, khiến cho font-size tăng dần.

HTML:

Test

Test

Test

CSS:

body {

font-size: 14px;

}

div {

font-size: 1.2em; // calculated at 14px * 1.2, or 16.8px

}

Như vậy, với 3

lồng vào nhau và font-size gốc là 14px, ta có font-size của
sâu nhất là 24.192px. Tuy nhiên, trường hợp này khá hiếm xảy ra. Trong phần lớn trường hợp thì ta sẽ muốn giá trị font-size dựa vào một thước đo duy nhất. Khi đó, ta dùng rem.

Vậy rem là gì?

"r" trong rem là viết tắt của "root". Vì vậy rem sẽ có giá trị luôn bằng kích thước font của phần tử gốc [root], trong phần lớn trường hợp là phần tử html. Ví dụ:

html {

font-size: 14px;

}

div {

font-size: 1.2rem;

}

Áp dụng vào trường hợp trên, tất cả các

sẽ có giá trị font-size là 16.8px.

Tại sao sử dụng em và rem?

Vì nó sẽ tương thích cho grids layout. Rem không chỉ được sử dụng để thay đổi kích thước của font. Ví dụ: bạn có thể sử dụng rem để thiết lập kích thước của cả hệ thống lưới [grid] và thư viện UI style dựa vào thuộc tính font-size của phần tử html root. Hoặc bạn cũng có thể sử dụng em để điều chỉnh lại kích thước font chữ của một số phần tử riêng lẻ. Điều này sẽ giúp bạn dễ dàng kiểm soát kích thước và tỉ lệ font chữ trên toàn trang web.

.container {

width: 70rem; // 70 * 14px = 980px

}

Lợi ích chính của việc này là giúp bạn dễ dàng mở rộng [scale up] trang web khi cần thiết. Tuy nhiên cần lưu ý là cách này không hẳn phù hợp với tất cả mọi tình huống.

vh và vw

Kỹ thuật thiết kế web responsive thường xuyên đòi hỏi sử dụng tỉ lệ phần trăm [%]. Tuy nhiên, phần trăm trong CSS không phải là giải pháp tốt nhất cho mọi vấn đề.

Độ rộng [width] CSS bị ảnh hưởng bởi phần tử cha gần nó nhất. Vậy điều gì sẽ xảy ra nếu bạn muốn sử dụng chiều rộng hoặc chiều cao của khung nhìn thay vì chiều rộng của phần tử cha? Đó chính xác là lúc bạn cần sử dụng vh vw.

Phần tử vh có giá trị đúng bằng 1/100 chiều cao của khung nhìn [viewport height]. Ví dụ, nếu browser có chiều cao là 900px thì 1vh có giá trị bằng 9px. Tương tự, nếu chiều rộng của khung nhìn [viewport width] là 750px, thì 1vw bằng 7.5px.

Có nhiều cách sử dụng đơn vị này. Một ví dụ đơn giản là bạn có thể khiến cho các slide có chiều cao bằng trình duyệt [full height] chỉ với một thiết lập CSS đơn giản:

Một ví dụ khác, khi bạn muốn tiêu đề lấp đầy chiều rộng của trình duyệt, bạn có thể thiết lập font-size: 100vw.

vmin và vmax

Trong khi vh và vw luôn gắn liền với chiều rộng và cao của trình duyệt, thì vmin và vmax liên quan tới giá trị lớn nhất và nhỏ nhất trong 2 giá trị: chiều rộng và chiều cao, tùy thuộc vào độ tương quan giữa chúng.

Ví dụ, nếu trình duyệt rộng 1100px và cao 700px, 1vmin sẽ có giá trị là 7px và 1vmax có giá trị là 11px. Tuy nhiên, nếu chiều rộng là 800px trong khi cao là 1080px, thì vmin sẽ tương ứng với 8px trong khi vmax là 10.8px.

Khi nào cần dùng vmin và vmax?

Giả sử bạn cần một phần tử luôn có thể hiển thị được trên màn hình, thì sử dụng vmin với giá trị nhỏ hơn 100 sẽ làm được điều đó. Ví dụ, một hình vuông luôn chạm vào ít nhất 2 cạnh của màn hình có thể được style như sau:

.box {

height: 100vmin;

width: 100vmin;

}

Nếu bạn cần một hình vuông luôn bao phủ góc nhìn [chạm cả 4 cạnh của màn hình], bạn có thể sử dụng vmax:

.box {

height: 100vmax;

width: 100vmax;

}

Việc sử dụng thành thạo 2 giá trị trên sẽ cho phép bạn linh hoạt điều chỉnh kích thước của các phần tử trên trang dựa theo kích thước trình duyệt và vẫn đảm bảo responsive.

ex và ch

Tương tự như em và rem, các đơn vị ex và ch cũng dựa vào font-size hiện tại. Tuy nhiên, điểm khác biệt là ex và ch còn bị ảnh hưởng bởi từng font-family riêng biệt.

Đơn vị ch, hay character, được định nghĩa là một "thước đo nâng cao" với chiều rộng bằng với ký tự zero, hay 0. Về cơ bản thì nếu sử dụng font monospace, một box với ký tự N [ví dụ width: 40ch] sẽ luôn chứa một chuỗi với 40 ký tự trong font đó.

Trước đây, quy tắc đặc biệt này thường được sử dụng để thiết kế bố cục chữ nổi [braille], tuy nhiên còn nhiều ứng dụng khác mà các bạn sẽ khám phá ra trong quá trình sáng tạo. Tham khảo thêm về ch tại blog của Eric Meyer.

Đơn vị ex được định nghĩa là "x-height của font hiện tại HOẶC một nửa của một em". x-height của một font là chiều cao của chữ x viết thường trong font đó.

Có rất nhiều cách sử dụng với đơn vị này, phần lớn là để thực hiện các điều chỉnh nhỏ trong typography. Ví dụ, phần tử sub [superscript] có thể được đẩy lên trên hàng sử dụng tương quan vị trí và giá trị bottom là 1ex. Tương tự bạn có thể đẩy subscript xuống dưới cũng với cách làm đó. Mặc định của trình duyệt cho superscript và subscript là sử dụng quy tắc vertical-align, nhưng bạn có thể tùy chỉnh theo ý thích ví dụ như sau:

sup {

position: relative;

bottom: 1ex;

}

sub {

position: relative;

bottom: -1ex;

}

Tham khảo: webdisgn.tutsplus.com

>> Có thể bạn quan tâm: 

BizFly Cloud là hệ sinh thái điện toán đám mây được vận hành bởi VCCorp - Công ty dẫn đầu trong lĩnh vực công nghệ và truyền thông tại Việt Nam. Với đội ngũ kỹ thuật viên trình độ cao và kinh nghiệm lâu năm làm việc trên các công nghệ khác nhau như cloud, mobile, web..., chúng tôi có đủ khả năng để hỗ trợ đưa ra những giải pháp và công nghệ toàn diện giúp doanh nghiệp chuyển đổi số thành công. Dành cho độc giả quan tâm tới các dịch vụ đám mây do BizFly Cloud cung cấp có thể truy cập tại đây.

Video liên quan

Chủ Đề