Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> CSS

CSS min-width: Đặt chiều rộng tối thiểu cho phần tử

Chúng ta có thể định nghĩa một min-width cố định cho hộp nội dung (content box) của một phần tử bằng thuộc tính CSS min-width, thuộc tính này không cho phép hộp nội dung của phần tử bị thu hẹp hơn giá trị này, ngay cả khi chiều rộng thực tế nhỏ hơn min-width.

Cú pháp

selector {
    min-width: /* giá trị */;
}

Giá trị: px, em, rem, %, vw, auto (mặc định).

Ví dụ 1: Áp dụng min-width cho nhiều div

<!DOCTYPE html>
<html>
<head>
<title>CSS min-width Property</title>
<style>
* { padding: 2px; margin: 5px; }
button { border-radius: 10px; }
#containerDiv {
    width: 70%;
    margin: 0 auto;
    padding: 20px;
    background-image: linear-gradient(135deg, #dc3545 0%, #9599E2 100%);
    text-align: center;
    border-radius: 10px;
}
.contentDiv {
    min-width: 200px;
    border: 1px solid black;
    background: white;
    padding: 10px;
    margin: 10px auto;
}
</style>
</head>
<body>
<div id="containerDiv">
<div class="contentDiv">Đoạn văn 1 với văn bản giả.</div>
<div class="contentDiv">Đoạn văn 2 với văn bản giả.</div>
<div class="contentDiv">Đoạn văn 3 với văn bản giả.</div>
<button onclick="add()" class="btn">Set minWidth</button>
</div>
<script>
function add() {
    document.querySelectorAll('.contentDiv')[1].style.minWidth = "100%";
}
</script>
</body>
</html>

Ví dụ 2: Áp dụng min-width: 100% cho tất cả div con

<!DOCTYPE html>
<html>
<head>
<title>CSS min-width Property</title>
<style>
* { padding: 2px; margin: 5px; }
button { border-radius: 10px; }
#containerDiv {
    width: 70%;
    margin: 0 auto;
    padding: 20px;
    background-image: linear-gradient(62deg, #fbab7e 0%, #f7ce68 100%);
    text-align: center;
    border-radius: 10px;
}
.contentDiv {
    min-width: 200px;
    border: 1px solid black;
    background: white;
    padding: 10px;
    margin: 10px auto;
}
</style>
</head>
<body>
<div id="containerDiv">
<div class="contentDiv">Đoạn văn 1</div>
<div class="contentDiv">Lorem Text</div>
<div class="contentDiv">Đoạn văn 3</div>
<button onclick="add()" class="btn">Set minWidth</button>
</div>
<script>
function add() {
    var all = document.querySelectorAll('.contentDiv');
    for (var i = 0; i < all.length; i++)
        all[i].style.minWidth = "100%";
}
</script>
</body>
</html>

Ứng dụng thực tế

  • Responsive sidebar: min-width: 250px; max-width: 300px; width: 20%;
  • Input field: min-width: 120px; tránh ô nhập quá nhỏ trên mobile
  • Button: min-width: 80px; đảm bảo nút bấm đủ rộng cho text
  • Card layout: min-width: 280px; trong grid auto-fit

Mối quan hệ với width và max-width

/* Thứ tự ưu tiên: */
width < min-width → min-width thắng
width > max-width → max-width thắng
min-width > max-width → max-width thắng (min-width bị bỏ qua)