CSS tutorial focusing on mobile-first design
Mobile-first CSS design requires setting the viewport meta tag, using relative units, styling from small screens up, optimizing typography and touch targets. First, add <meta name="viewport" content="width=device-width, initial-scale=1"> to control scaling. Second, use %, em, or rem instead of pixels for flexible layouts. Third, write base styles for mobile, then layer in tablet and desktop styles with media queries. Fourth, ensure text is readable with at least 16px font and clickable elements are at least 44x44px. Fifth, avoid absolute positioning that causes overlap, favoring Flexbox or Grid. Finally, test layouts by resizing the browser and adjust tap targets near screen edges to prevent gesture conflicts.

Getting your CSS right for mobile-first design isn’t about doing something fancy — it’s about thinking ahead. The idea is simple: build your site for the smallest screen first, then scale up. This approach helps you keep things clean and functional from the start, rather than trying to squeeze a desktop layout onto a phone later.

Use Responsive Viewports
One of the first things you need to do in any mobile-first project is set the viewport meta tag properly. Without this, mobile browsers will act like they’re viewing a desktop site and zoom out by default.

Add this line inside your HTML <head>:
<meta name="viewport" content="width=device-width, initial-scale=1">
This tells the browser not to scale the page automatically and to match the device width. It might seem minor, but skipping this step breaks the whole responsive experience on mobile.

Also, when designing with CSS, use relative units like percentages, em, or rem instead of fixed pixels. For example:
- Set widths using 
%orvw - Use 
remfor font sizes so text scales nicely across devices - Avoid setting elements with fixed heights unless absolutely necessary
 
These small choices make your layout adapt better without extra hacks later.
Start Styling from Small Screens
In your CSS file, write styles for mobile devices first. That means your base styles are built for smaller screens. Then, as screens get bigger, you layer on changes using media queries.
Here’s how that looks:
/* Base styles (mobile) */
.container {
  padding: 1rem;
}
/* Tablet and up */
@media (min-width: 768px) {
  .container {
    padding: 2rem;
  }
}
/* Desktop and up */
@media (min-width: 1024px) {
  .container {
    max-width: 1200px;
    margin: 0 auto;
  }
}Some tips to keep in mind:
- Keep your media query breakpoints simple and consistent
 - Don’t go overboard with too many different screen sizes
 - Think in terms of content needs, not specific devices
 
It’s also good practice to test your layout by resizing your browser window. You’ll quickly see where things break or look off.
Optimize Typography and Touch Targets
Text readability and touch targets are often overlooked but are super important on mobile. Big blocks of tiny text are frustrating to read, and small buttons are annoying to tap.
To fix that:
- Use at least 
16pxfont size for body text - Make sure clickable elements (like buttons and links) are big enough — around 
44x44pxminimum - Add enough spacing between interactive elements
 
Also, avoid using absolute positioning too much for layout, especially if it causes overlapping elements on smaller screens. Flexbox and Grid work great and are easier to manage responsively.
Another thing — don’t forget about tap targets near the edges of the screen. On some phones, especially iOS, the system gestures can interfere with taps near the bottom or sides. So, give those elements a bit of breathing room.
That’s the core of mobile-first CSS. It doesn’t require complicated tools or frameworks — just thoughtful planning and smart use of basic CSS features. Keep things simple, test early, and adjust as needed.
The above is the detailed content of CSS tutorial focusing on mobile-first design. For more information, please follow other related articles on the PHP Chinese website!
									Hot AI Tools
											
											Undress AI Tool
Undress images for free
											
											Undresser.AI Undress
AI-powered app for creating realistic nude photos
											
											AI Clothes Remover
Online AI tool for removing clothes from photos.
											
											Clothoff.io
AI clothes remover
											
											Video Face Swap
Swap faces in any video effortlessly with our completely free AI face swap tool!
								Hot Article
									Hot Tools
											
											Notepad++7.3.1
Easy-to-use and free code editor
											
											SublimeText3 Chinese version
Chinese version, very easy to use
											
											Zend Studio 13.0.1
Powerful PHP integrated development environment
											
											Dreamweaver CS6
Visual web development tools
											
											SublimeText3 Mac version
God-level code editing software (SublimeText3)
								Hot Topics
											1793
										
											16
										
											1736
										
											56
										
											1587
										
											29
										
											267
										
											587
										
								
								Integrating CSS and JavaScript effectively with HTML5 structure.
								Jul 12, 2025 am	 03:01 AM
								HTML5, CSS and JavaScript should be efficiently combined with semantic tags, reasonable loading order and decoupling design. 1. Use HTML5 semantic tags, such as improving structural clarity and maintainability, which is conducive to SEO and barrier-free access; 2. CSS should be placed in, use external files and split by module to avoid inline styles and delayed loading problems; 3. JavaScript is recommended to be introduced in front, and use defer or async to load asynchronously to avoid blocking rendering; 4. Reduce strong dependence between the three, drive behavior through data-* attributes and class name control status, and improve collaboration efficiency through unified naming specifications. These methods can effectively optimize page performance and collaborate with teams.
								
								How to create responsive images using CSS?
								Jul 15, 2025 am	 01:10 AM
								To create responsive images using CSS, it can be mainly achieved through the following methods: 1. Use max-width:100% and height:auto to allow the image to adapt to the container width while maintaining the proportion; 2. Use HTML's srcset and sizes attributes to intelligently load the image sources adapted to different screens; 3. Use object-fit and object-position to control image cropping and focus display. Together, these methods ensure that the images are presented clearly and beautifully on different devices.
								
								Describe the `:has()` pseudo-class (Parent selector)
								Jul 15, 2025 am	 12:32 AM
								The:has()pseudo-classinCSSallowstargetingaparentelementbasedonitschildelements.Itworksbyusingthesyntaxparent:has(child-selector)toapplystylesconditionally.Forexample,div:has(img)appliesstylestoadivcontaininganimage.Multipleselectorscanbeusedwithcomma
								
								Describe the `opacity` property
								Jul 15, 2025 am	 01:23 AM
								opacity is an attribute in CSS that controls the overall transparency of an element, with values ranging from 0 (fully transparent) to 1 (fully opaque). 1. It is often used for the image hover fade effect, and enhances the interactive experience by setting the opacity transition; 2. Making a background mask layer to improve text readability; 3. Visual feedback of control buttons or icons in the disabled state. Note that it affects all child elements, unlike rgba, which only affects the specified color part. Smooth animation can be achieved with transition, but frequent use may affect performance. It is recommended to use it in combination with will-change or transform. Rational application of opacity can enhance page hierarchy and interactivity, but it should avoid interfering with users.
								
								Explain property inheritance in CSS
								Jul 15, 2025 am	 01:25 AM
								InCSS,propertyinheritanceaffectshowstylesarepassedfromparentelementstochildren.Somepropertieslikecolorandfont-familyinheritbydefault,applyingtoallnestedelementsunlessoverridden.Non-inheritedpropertiessuchasborder,margin,andpaddingmustbesetexplicitly.
								
								How to style selection highlighting (`::selection`)?
								Jul 16, 2025 am	 12:50 AM
								Use the ::selection pseudo-element of CSS to customize the highlighting style when the web page text is selected to improve the aesthetics and unity of the page. 1. Basic settings: define background-color and color through ::selection, such as yellow background with dark gray fonts; specific elements such as p::selection can also be limited. 2. Compatibility processing: Add the -webkit- prefix to be compatible with Safari and mobile browsers, and the Firefox and Edge standards are well supported. 3. Pay attention to readability: Avoid excessive color contrast or too fancy, and should be coordinated with the overall design. For example, choose a soft blue base in dark mode to improve visual comfort. Reasonable use can enhance the texture of the interface, ignore details
								
								Describe the `word-break` and `word-wrap` properties
								Jul 16, 2025 am	 02:08 AM
								Word-break and overflow-wrap (formerly word-wrap) do differently when dealing with long words or unbreakable content. 1. Word-break controls how to break lines of words in block elements, break-all forces long words to break, keep-all avoids breaking, suitable for Chinese, Japanese and Korean texts. 2. Overflow-wrap disconnects long words when necessary to prevent overflow, break-word makes the context more intelligent. 3. In usage scenarios, use word-break:break-all for code, and use overflow-wrap:break-word for user comments. 4. Pay attention to differences in browser compatibility and different mobile behaviors
								
								Describe the `list-style` property
								Jul 15, 2025 am	 12:06 AM
								list-style is abbreviation attribute in CSS for controlling the pre-marking style of list items. 1. You can set the list-style-type, list-style-position and list-style-image at the same time; 2. By default, unordered lists use disc styles, and ordered lists use numeric numbers; 3. Support setting types, positions and pictures, and specify backup styles to deal with image loading failures; 4. In actual development, the default styles are often cleared to ensure consistency, and pay attention to text indentation and image loading issues.
							
											
                
												