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
rem
for 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
16px
font size for body text - Make sure clickable elements (like buttons and links) are big enough — around
44x44px
minimum - 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









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.

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.

The:has()pseudo-classinCSSallowstargetingaparentelementbasedonitschildelements.Itworksbyusingthesyntaxparent:has(child-selector)toapplystylesconditionally.Forexample,div:has(img)appliesstylestoadivcontaininganimage.Multipleselectorscanbeusedwithcomma

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.

InCSS,propertyinheritanceaffectshowstylesarepassedfromparentelementstochildren.Somepropertieslikecolorandfont-familyinheritbydefault,applyingtoallnestedelementsunlessoverridden.Non-inheritedpropertiessuchasborder,margin,andpaddingmustbesetexplicitly.

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

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

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.
