:read-only

Baseline Widely available

This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2020.

Lớp giả :read-only trong CSS (pseudo-class) chọn các phần tử (chẳng hạn như một số loại <input><textarea>) không thể chỉnh sửa bởi người dùng. Các phần tử mà thuộc tính HTML readonly không có hiệu lực (chẳng hạn như <input type="radio">, <input type="checkbox">, và tất cả các phần tử không phải biểu mẫu khác) cũng được chọn bởi lớp giả :read-only. Trên thực tế, :read-only khớp với bất kỳ thứ gì mà :read-write không khớp, khiến nó tương đương với :not(:read-write).

Try it

label,
input[type="submit"] {
  display: block;
  margin-top: 1em;
}

*:read-only {
  font-weight: bold;
  color: indigo;
}
<p>Please fill your details:</p>

<form>
  <label for="email">Email Address:</label>
  <input id="email" name="email" type="email" value="test@example.com" />

  <label for="note">Short note about yourself:</label>
  <textarea id="note" name="note">Don't be shy</textarea>

  <label for="pic">Your picture:</label>
  <input id="pic" name="pic" type="file" />

  <input type="submit" value="Submit form" />
</form>

Cú pháp

css
:read-only {
  /* ... */
}

Ví dụ

Xác nhận thông tin biểu mẫu bằng các điều khiển chỉ đọc hoặc đọc-ghi

Một cách sử dụng các điều khiển biểu mẫu chỉ đọc là cho phép người dùng kiểm tra và xác minh thông tin họ có thể đã nhập trong biểu mẫu trước đó (ví dụ: thông tin giao hàng), trong khi vẫn có thể gửi thông tin đó cùng với phần còn lại của biểu mẫu. Chúng ta thực hiện đúng điều này trong ví dụ dưới đây.

Lớp giả :read-only được sử dụng để xóa tất cả các kiểu làm cho các input trông như các trường có thể nhấp, làm chúng trông giống như các đoạn văn chỉ đọc hơn. Ngược lại, lớp giả :read-write được sử dụng để cung cấp kiểu đẹp hơn cho <textarea> có thể chỉnh sửa.

css
input:read-only,
textarea:read-only {
  border: 0;
  box-shadow: none;
  background-color: #dddddd;
}

textarea:read-write {
  outline: 1px dashed red;
  outline-offset: 2px;
  border-radius: 5px;
}

Tạo kiểu cho các điều khiển không phải biểu mẫu chỉ đọc

Bộ chọn này không chỉ chọn các phần tử <input>/<textarea> mà nó sẽ chọn bất kỳ phần tử nào không thể chỉnh sửa bởi người dùng.

html
<p contenteditable>This paragraph is editable; it is read-write.</p>

<p>This paragraph is not editable; it is read-only.</p>
css
p {
  font-size: 150%;
  padding: 5px;
  border-radius: 5px;
}

p:read-only {
  background-color: red;
  color: white;
}

p:read-write {
  background-color: lime;
}

Thông số kỹ thuật

Specification
HTML
# selector-read-only
Selectors Level 4
# read-only-pseudo

Tương thích trình duyệt

Xem thêm