אתר רספונסיבי עם CSS3 ו-media queries
אתר רספונסיבי הוא אתר שהמראה שלו משתנה ומתאים את עצמו לרוחב המסך. זאת אומרת, שהמראה במסכים רחבים יהיה שונה מהמראה על גבי מסכי הטאבלטים והסמארטפונים.
איך עושים את זה? באמצעות media queries, ומספר עקרונות נוספים שנסביר להלן.
כנסו לקישור כדי לראות את הקוד בפעולה:
מה זה media queries?
media query זה תקן של CSS3 שמאפשר לכלול בלוק של CSS רק במידה ומתקיימים תנאים מסוימים.
בדוגמה הבאה, אם רוחב המסך צר מ-600 פיקסלים נוסיף בלוק של CSS שישנה את צבע הרקע לצהוב.
@media only screen and (max-width:600px) {
body {
background: yellow;
}
}
הכלל עובד בתוך הסוגריים שמגדירים שהבלוק של ה-css יפעל רק ברוחב מסך הקטן מ-600 פיקסלים.
הוספת breakpoints
עיקר השימוש ב-media queries הוא באתרים רספונסיביים שבהם נרצה להתאים את המראה לרוחב המסך.
כדי לעבוד עם media queries צריך לקבוע breakpoint (נקודת שבירה) שמעליה יהיה סט אחד של כללי CSS, ומתחתיה סט אחר של כללים.
בדוגמה הבאה, נקבע ה-breakpoint ל-728 פיקסלים. כתוצאה מהקוד, כשרוחב המסך גדול מ-728 פיקסלים, יוצגו הטורים אחד לצד השני, וכשרוחב המסך צר מ-728 פיקסלים, הטורים יוצגו כבלוקים אחד מעל השני.
ראו התמונות המצורפות:
מראה מעל 728px:
מראה מתחת ל-728px:
ה-HTML
<html>
<head>
<meta charset="utf-8">
<title>מדריך עיצוב רספונסיבי</title>
</head>
<body>
<div class="row">
<div class="col no-float">
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor
</div>
</div>
<div class="row">
<div class="col col-left">Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor
</div>
<div class="col col-middle">Sed ut perspiciatis unde omnis iste natus error sit voluptatem accusantium doloremque laudantium, totam rem aperiam, eaque ipsa quae ab illo inventore veritatis et quasi architecto beatae vitae dicta sunt explicabo. Nemo enim ipsam voluptatem quia voluptas sit aspernatur aut odit aut fugit, sed quia consequuntur magni dolores eos qui ratione voluptatem sequi nesciunt. Neque porro quisquam est, qui dolorem ipsum quia dolor sit amet, consectetur, adipisci velit, sed quia non numquam eius modi tempora incidunt ut labore et dolore magnam aliquam quaerat voluptatem. Ut enim ad minima veniam, quis nostrum exercitationem ullam corporis suscipit laboriosam, nisi ut aliquid ex ea commodi consequatur? Quis autem vel eum iure reprehenderit qui in ea voluptate velit esse quam nihil molestiae consequatur, vel illum qui dolorem eum fugiat quo voluptas nulla pariatur?
</div>
<div class="col col-right">At vero eos et accusamus et iusto odio dignissimos ducimus qui blanditiis praesentium voluptatum deleniti atque corrupti quos dolores et quas molestias excepturi sint occaecati cupiditate non provident, similique sunt in culpa qui officia deserunt mollitia animi, id est
</div>
</div>
<div class="clearfix"></div>
<div class="row not-mobile">
<div class="col no-float">
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor
</div>
</div>
<div class="row only-mobile">
<div class="col no-float center">
<img src="phone-number.jpg" class="responsive-img">
</div>
</div>
</body>