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)