Last updated on

The min-width property in CSS is used to set the minimum width of a specified element. Themin-width property always overrides the width property whether followed before or afterwidth in your declaration. Authors may use any of the length values as long as they are a positive value.

.wrapper {
  width: 100%;
  min-width: 20em; /* Will be AT LEAST 20em wide */
}
<h1>min-width</h1>

<figure class="demo">
  <p class="min min600">Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Vestibulum tortor quam, feugiat vitae, ultricies eget, tempor sit amet, ante. Donec eu libero sit amet quam egestas semper. Aenean ultricies mi vitae est. Mauris placerat eleifend leo.</p>
  <figcaption>Width = 80% / Minimum Width = 600px</figcaption>
</figure>

<figure class="demo">
  <p class="min min320">Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Vestibulum tortor quam, feugiat vitae, ultricies eget, tempor sit amet, ante. Donec eu libero sit amet quam egestas semper. Aenean ultricies mi vitae est. Mauris placerat eleifend leo.</p>
  <figcaption>Width = 100% / Minimum Width = 320px</figcaption>
</figure>

<figure class="demo">
  <p class="min min480">Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Vestibulum tortor quam, feugiat vitae, ultricies eget, tempor sit amet, ante. Donec eu libero sit amet quam egestas semper. Aenean ultricies mi vitae est. Mauris placerat eleifend leo.</p>
  <figcaption>Width = 600px / Minimum Width = 480px (won't work)</figcaption>
</figure>

<figure class="demo">
  <p class="min min-percent">Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Vestibulum tortor quam, feugiat vitae, ultricies eget, tempor sit amet, ante. Donec eu libero sit amet quam egestas semper. Aenean ultricies mi vitae est. Mauris placerat eleifend leo.</p>
  <figcaption>Width = 100% / Minimum Width = 50% (won't work)</figcaption>
</figure>

<figure class="demo">
  <p class="min em40">Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Vestibulum tortor quam, feugiat vitae, ultricies eget, tempor sit amet, ante. Donec eu libero sit amet quam egestas semper. Aenean ultricies mi vitae est. Mauris placerat eleifend leo.</p>
  <figcaption>Width = 100% / Minimum Width = 40em</figcaption>
</figure>

<figure class="demo">
  <p class="min rem40">Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Vestibulum tortor quam, feugiat vitae, ultricies eget, tempor sit amet, ante. Donec eu libero sit amet quam egestas semper. Aenean ultricies mi vitae est. Mauris placerat eleifend leo.</p>
  <figcaption>Width = 100% / Minimum Width = 40rem</figcaption>
</figure>

<h3>Tables</h3>
<figure class="demo">
  <table class="min mintable">
		<thead>
			<tr>
				<th class="chrome"><span>Chrome</span></th>
				<th class="safari"><span>Safari</span></th>
				<th class="firefox"><span>Firefox</span></th>
				<th class="opera"><span>Opera</span></th>
				<th class="ie"><span>IE</span></th>
				<th class="android"><span>Android</span></th>
				<th class="iOS"><span>iOS</span></th>
			</tr>
		</thead>
		<tbody>
			<tr>
				<td class="yep-nope">24 </td>
				<td class="yep-nope">5.1 </td>
				<td class="yep-nope">18 </td>
				<td class="yep-nope">12.1 </td>
				<td class="yep-nope">8 </td>
				<td class="yep-nope">1.0 </td>
				<td class="yep-nope">2.1 </td>
			</tr>
		</tbody>
	</table>
  <figcaption>Width = 100% / Minimum Width = 600px</figcaption>
</figure>

<footer>
  <p><small>*These examples use the entire viewport width in order to understand and grasp the concepts outlined. Squeeze your browser to witness the results.</small></p>
</footer>
//========================================
// $Global Styles
//========================================

html {
  background: #444444;
  color: #ffffff;
}

.demo {
  background: #000;
}

//========================================
// $Minimum Width Demo
//========================================

.min {
  background: #e78629;
}

// Min-Width Length Values
// ========================================

// minimum 600px
.min600 {
  width: 80%;
  min-width: 600px;
}

// minimum 320px
.min320 {
  width: 100%;
  min-width: 320px;
}

// minimum 480px
.min480 {
  width: 600px;
  min-width: 480px;
}

// minimum 50%
.min-percent {
  width: 100%;
  min-width: 50%;
}

// minimum 40em
.rem40 {
  width: 100%;
  min-width: 40em;
}

// minimum 40rem
.rem40 {
  width: 100%;
  min-width: 40rem;
}


// Min-Width TABLES
// ========================================

// minimum 30em
.mintable {
  width: 100%;
  min-width: 600px;
}

Be mindful when assuming min-width is inherited as this property does not inherit from other parent elements. If authors define a width using an absolute value (px, pt, in, cm, mm), the min-width will not take affect as the width has been defined indefinitely. For example, if a value of 200px is used as a width length, your min-width value of 100px will not be neccessary as you have already specified an absolute value for the width (i.e. 200px). The best way to use min-width is to define a width value as a percentage and use an absolute value for the min-width property otherwise using a percentage value for for both min-width and width will not produce the expected result.

Related Properties

Browser Support

Chrome Safari Firefox Opera IE Android iOS
24+ 5.1+ 18+ 12.1+ 8+ 2.1+ 3.2+

IE7 doesn’t support “inherit” as a value.