187 lines
7.7 KiB
Markdown
187 lines
7.7 KiB
Markdown
---
|
||
title: Breakpoints
|
||
localeTitle: نقاط
|
||
---
|
||
## نظرة عامة
|
||
|
||
نقطة توقف CSS هي نقطة محددة يتغير فيها تخطيط موقع الويب ، بناءً على [استعلام الوسائط](https://guide.freecodecamp.org/css/css3-media-queries) تصبح نشطة.
|
||
|
||
بشكل عام ، يمكنك تحديد نقطة توقف عندما تريد إعادة تهيئة تخطيط موقع الويب إلى حجم إطار عرض المستعرض ؛ في الغالب ، إلى عرض إطار العرض.
|
||
|
||
على سبيل المثال ، إذا كان محتوى موقعك الإلكتروني يبدو رائعًا على إطار عرض ضيق (كما هو الحال في متصفح الهاتف الذكي) ، إلا أنه يبدأ في الظهور على شاشات أكبر حجمًا (على سبيل المثال ، قد يكون حجم الخطوط صغيرًا جدًا ويصعب قراءته) ، قد ترغب في تقديم نقطة توقف جديدة للشاشات الأكبر التي تجعل الخطوط أكبر:
|
||
|
||
يمكن اعتبار CSS Breakpoints أساس تصميم الويب المتجاوب لأنه يحدد كيفية تصرف المحتوى أو يتم ترتيبه في عرض / مقياس جهاز مختلف يسمح لك بعرض أفضل تخطيط ممكن للمستخدم.
|
||
|
||
![مثال](https://getflywheel.com/wp-content/uploads/2018/02/css-breakpoints-layouts-01.jpg)
|
||
|
||
## ضبط نقاط الاستراحة
|
||
|
||
يتم تعيين breakpoints بشكل واسع على أساس أي مما يلي.
|
||
|
||
* نقاط التوقف حسب عرض الجهاز.
|
||
* نقاط التوقف على أساس المحتوى.
|
||
|
||
### نقاط التوقف حسب عرض الجهاز
|
||
|
||
من الواضح تمامًا أن جميع أجهزتنا لا تمتلك نفس عرض / أحجام الشاشة. هو الآن قرار تصميم لتضمين مجموعة من أجهزة معينة ورمز قواعد css وفقًا لذلك. لدينا بالفعل أجهزة كافية للقلق ، وعندما يخرج جهاز جديد بعرض مختلف ، فإن الرجوع إلى CSS الخاص بك وإضافة نقطة توقف جديدة من جديد يستهلك الكثير من الوقت.
|
||
|
||
وهنا مثال على ذلك
|
||
|
||
`/* ----------- iPhone 6, 6S, 7 and 8 ----------- */
|
||
|
||
/* Portrait */
|
||
|
||
@media only screen
|
||
|
||
and (min-device-width: 375px)
|
||
|
||
and (max-device-width: 667px)
|
||
|
||
and (-webkit-min-device-pixel-ratio: 2)
|
||
|
||
and (orientation: portrait) {
|
||
|
||
}
|
||
|
||
/* Landscape */
|
||
|
||
@media only screen
|
||
|
||
and (min-device-width: 375px)
|
||
|
||
and (max-device-width: 667px)
|
||
|
||
and (-webkit-min-device-pixel-ratio: 2)
|
||
|
||
and (orientation: landscape) {
|
||
|
||
}
|
||
|
||
/* ----------- Google Pixel ----------- */
|
||
|
||
/* Portrait */
|
||
|
||
@media screen
|
||
|
||
and (device-width: 360px)
|
||
|
||
and (device-height: 640px)
|
||
|
||
and (-webkit-device-pixel-ratio: 3)
|
||
|
||
and (orientation: portrait) {
|
||
|
||
}
|
||
|
||
/* Landscape */
|
||
|
||
@media screen
|
||
|
||
and (device-width: 360px)
|
||
|
||
and (device-height: 640px)
|
||
|
||
and (-webkit-device-pixel-ratio: 3)
|
||
|
||
and (orientation: landscape) {
|
||
|
||
}
|
||
`
|
||
|
||
> مع هذا النهج ، سوف ينتهي بك الأمر وجود قائمة ضخمة من الاستفسارات الإعلامية.
|
||
|
||
### نقاط التوقف على أساس المحتوى
|
||
|
||
هذا هو الخيار المفضل أثناء إجراء أو كتابة قواعد نقطة الإيقاف. لأنه من الأسهل ضبط المحتوى وفقًا لتخطيط معين فقط عندما يتطلب تغييرًا.
|
||
|
||
`@media only screen (min-width: 768px){
|
||
...
|
||
}
|
||
`
|
||
|
||
> تعني نقطة الإيقاف هذه أنه سيتم تطبيق CSS عندما يكون عرض الجهاز 768 بكسل وما فوق.
|
||
|
||
#### يمكنك أيضًا تعيين نطاق بنقاط توقف ، بحيث لا يتم تطبيق CSS إلا ضمن هذه الحدود.
|
||
|
||
`@media only screen and (min-width: 768px) and (max-width: 959px){
|
||
|
||
...
|
||
|
||
}
|
||
`
|
||
|
||
**ملحوظة** حاول دائمًا إنشاء نقاط توقف استنادًا إلى المحتوى الخاص بك وليس إلى الأجهزة. تقسيمها إلى عرض منطقي بدلاً من عرض عشوائي والاحتفاظ بها إلى عدد يمكن إدارتها ، لذلك يبقى التعديل بسيطة وواضحة.
|
||
|
||
تكون **نقاط التوقف CSS** مفيدة عندما تريد تحديث الأنماط استنادًا إلى حجم الشاشة. على سبيل المثال ، من جهاز قياس عرض 1200 بكسل وما فوق ، استخدم `font-size: 20px;` أو ما عدا ذلك ، استخدم `font-size: 16px;` .
|
||
|
||
ما بدأناه هو من عرض أكبر من 1200 بكسل ، وهو عرض شاشة الكمبيوتر المحمول الشائعة. قد تلاحظ أيضًا أننا قد ذكرنا "أكبر من" ، مما يعني أننا نستخدم طريقة مثل " **if-then** ".
|
||
|
||
دعونا نحولها إلى رمز CSS:
|
||
|
||
`.text1 {
|
||
font-size: 16px;
|
||
}
|
||
@media (min-width: 1200px) {
|
||
.text1 {
|
||
font-size: 20px;
|
||
}
|
||
}
|
||
`
|
||
|
||
**للراحة لدينا،** وكتابة `.text1` التصميم الأساسي أولا ... ثم بعد ذلك سنقوم تحديد `@media` القواعد.
|
||
|
||
**تلميح** : قد تشاهد على إطار CSS مشترك يسمى "Bootstrap" ، حيث أنها تبنت **"min-width" وأعلى** في Bootstrap v4.0 ، بالمقارنة مع Bootstrap v3.0 القديمة باستخدام **"max-width" و down** . هذا مجرد **تفضيل** ، ولا حرج في قول " _هذا_ الحجم وأقل من" مقابل " _هذا_ الحجم وأكبر من".
|
||
|
||
من الجيد تمامًا استخدام `@media (max-width) {}` . هنا مثال:
|
||
|
||
`.text1 {
|
||
font-size: 20px;
|
||
}
|
||
@media (max-width: 1199px) {
|
||
font-size: 16px;
|
||
}
|
||
`
|
||
|
||
`// Normal, basic styles
|
||
// that look great on small screens
|
||
// but not on bigger screens
|
||
body {
|
||
font-size: 16px;
|
||
}
|
||
|
||
// Define a new breakpoint, with a media query.
|
||
// In this case, for when the viewport's width
|
||
// is at least 512px wide.
|
||
@media (min-width: 512px) {
|
||
body {
|
||
font-size: 20px;
|
||
}
|
||
}
|
||
`
|
||
|
||
نقاط التوقف المستندة إلى محتوى بدلاً من الجهاز تكون أقل تعقيدًا. إليك مقتطف بسيط يتم `code 700px` عندما يكون عرض الجهاز أعلى من حجم شاشة الهاتف الذكي بحجم `code 700px` تقريبًا
|
||
|
||
`@media only screen and (min-width: 700px) {
|
||
something {
|
||
something: something;
|
||
}
|
||
}
|
||
`
|
||
|
||
يمكنك أيضًا تعيين الحد الأدنى والحد الأقصى للعرض ، والذي يتيح لك إجراء التجارب باستخدام نطاقات مختلفة. هذا واحد تقريبا يطلق بين الهاتف smar وأكبر حجم سطح المكتب وأحجام الشاشة
|
||
|
||
`@media only screen and (min-width: 700px) and (max-width: 1500px) {
|
||
something {
|
||
something: something;
|
||
}
|
||
}
|
||
`
|
||
|
||
#### معلومات اكثر:
|
||
|
||
* [نقاط توقف متجاوبة](https://getbootstrap.com/docs/4.1/layout/overview/#responsive-breakpoints)
|
||
* [مقالة freecodecamp.org حول استخدام نقاط توقف CSS](https://medium.freecodecamp.org/the-100-correct-way-to-do-css-breakpoints-88d6a5ba1862)
|
||
* [استعلامات الوسائط CSS3](https://guide.freecodecamp.org/css/css3-media-queries)
|
||
* [تحديد نقاط التوقف](https://responsivedesign.is/strategy/page-layout/defining-breakpoints/)
|
||
* [CSS-Tricks:media queries](https://css-tricks.com/snippets/css/media-queries-for-standard-devices/)
|
||
* [w3schools: نقاط توقف الجهاز النموذجية](https://www.w3schools.com/howto/howto_css_media_query_breakpoints.asp) |