+1

[JavaScript] OffsetWidth và offsetHeight trong JavaScript

Sử dụng offsetWidth and offsetHeight trong JavaScript nói nom na là bạn có thể lấy được kích thước pixel của phần tử HTML. Kích thước được tính bằng cách sử dụng kích thước của nội dung bên trong phần tử HTML bao gôm cả padding, borders, scrollbars nhưng riêng thuộc tính margin thì lại không được offsetWidthoffsetHeight tính toán 😄 😄

Cách sử dụng offsetWidth và offsetHeight

Đơn giản lắm anh em ạ

<div id="foo">
  Hello World
</div>

Đây là đoạn sử dụng Javascript để lấy giá trị:

const offsetWidth = document.querySelector('#foo').offsetWidth;
const offsetHeight = document.querySelector('#foo').offsetHeight;

Bài tập

Dưới đây là 1 ví dụ nho nhỏ, hãy tính tính toán xem giá trị của offsetWidthoffsetHeight là bao nhiêu nhé:

Giả sử element trên là thẻ div có id là foo nhé

fsetWidth = document.querySelector('div#foo').offsetWidth;
const offsetHeight = document.querySelector('div#foo').offsetHeight;
console.log(offsetWidth, offsetHeight);
// --> 255, 140

Nó được tính như thế nào?

Chỉ cần thêm border, padding, scrollbar và nội dung bên trong phần tử HTML (bỏ qua margin!):

Thử một bài tập khác, hãy tính tính toán xem giá trị của offsetWidthoffsetHeight là bao nhiêu nhé:

Kết qủa bài tập này các bạn hãy trả lời bên dưới nhé: VD: BT2: offsetWidth: xxx, offsetHeight: yyy

Và đuơng nhiên sẽ có phần quà nho nhỏ cho những bạn trả lời đúng =))

Một vài điều cần lưu ý

Block-level: offsetWithoffsetHeight không làm việc với những thẻ HTML inline như là span, em, a nó sẽ mặc định là 0px

Rounded Values: Các giá trị được làm tròn đến số nguyên gần nhất. Nếu bạn cần các giá trị chính xác hơn, hãy sử dụng getBoundingoffsetRect()

Read-Only: Bạn có thể chỉ định một giá trị mới để thay đổi kích thước của phần tử HTML. Ví dụ someElement.offsetWidth = 30

Độ tuơng thích

offsetWidth and offsetHeight được hỗ trợ trên tất cả các trình duyệt máy tính để bàn và thiết bị di động.


All rights reserved

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í