Sass MediaScreen - تعريف أجهزة CSS

أعتقد أنه في الآونة الأخيرة أصبح الفرق في حجم الشاشة بين مجموعات الأجهزة المختلفة أكثر وضوحًا. على الرغم من ذلك ، حاولت كتابة أداة لتحديد مجموعتي الأجهزة (الهواتف المحمولة والأجهزة اللوحية وأجهزة الكمبيوتر المحمولة وأجهزة سطح المكتب) وأجهزة معينة (iPhone 5 و iPhone X و iPad Pro 12 وما إلى ذلك). اتضح ، في رأيي ، حزمة مريحة من مزيج SASS. والأهم من ذلك ، أن الأداة سهلة الاستخدام ، كما تسمح لك بتوسيع قائمة الأجهزة الخاصة بك دون تحرير المصدر.


بالمناسبة ، كزة التجريبي هنا .

فقط بضع تحفظات:



تركيب


قم بتنزيل المكتبة:

 $ yarn add sass-mediascreen  $ npm install sass-mediascreen  $ curl -O https://raw.githubusercontent.com/gvozdb/sass-mediascreen/master/_mediascreen.scss 

وربط الخلطات إلى تطبيقنا:

 @import "mediascreen"; 

أمثلة


هذه هي الطريقة التي يمكنك اختبار أجهزة محددة:

 @include device(iPhone5, portrait) { // portrait orientation // iPhone 5, iPhone 5s, iPhone 5c, iPhone SE } @include device(iPhone6Plus iPhoneXR, landscape) { // landscape orientation // iPhone 6+, iPhone 6s+, iPhone 7+, iPhone 8+, iPhone XR } @include device(iPadPro10 iPadPro11 iPadPro12) { // all orientations // iPad Pro 10.5, iPad Pro 11, iPad Pro 12.9 } 

فيما يلي مجموعات الأجهزة:

 @include device(desktop) { // all orientations // desktop } @include device(mobile tablet laptop, landscape) { // landscape orientation // mobile, tablet, laptop } @include device(mobile-landscape tablet laptop) { // landscape orientation // mobile // all orientations // tablet, laptop } @include device(mobile-landscape tablet laptop, portrait) { // landscape orientation // mobile // portrait orientation // tablet, laptop } 

وهذه مزج قياسي لفحص أحجام الشاشة (من ، إلى) والاتجاه الحالي للجهاز:

 @include screen(min-width, max-width, orientation) {/*...*/} @include min-screen(width) {/*...*/} @include max-screen(width) {/*...*/} @include screen-height(min-height, max-height, orientation) {/*...*/} @include min-screen-height(height) {/*...*/} @include max-screen-height(height) {/*...*/} @include landscape() {/*...*/} @include portrait() {/*...*/} 

قائمة الأجهزة المدعومة


مجموعة

- الهواتف النقالة 320-767 بكسل - mobile ، mobile-portrait mobile-landscape
- الأجهزة اللوحية 768-1023px - tablet ، tablet-portrait tablet-landscape
- أجهزة الكمبيوتر المحمولة 1024-1199px - laptop ، laptop-portrait laptop-landscape ، laptop-landscape
- أجهزة سطح المكتب> = 1200 بكسل - desktop ، desktop-portrait desktop-landscape

الهواتف

- iPhone 5، 5s، 5c، SE - iphone5 ، iphone5s ، iphone5c ، iphonese
- iPhone 6 ، 6s ، 7 ، 8 - iphone6 ، iphone6s ، iphone7 ، iphone8
- iPhone 6+ ، 6s + ، 7+ ، 8+ - iphone6plus ، iphone6splus ، iphone7plus ، iphone8plus
- iPhone X ، XS - iphonex ، iphonexs
- iPhone XR - iphonexr
- iPhone XS Max - iphonexsmax

أقراص

- iPad 1 ، 2 ، Mini ، Air - ipad1 ، ipad2 ، ipadmini ، ipadair
- iPad 3 ، 4 ، Pro 9.7 "- ipad4 ، ipadpro9 ، ipadpro9
- iPad Pro 10.5 "- ipadpro10
- iPad Pro 11.0 "- ipadpro11

أجهزة الكمبيوتر المحمولة

- iPad Pro 12.9 "- ipadpro12

للأسف ، من حيث حجم الشاشة ، فإن جهاز iPad Pro 12 هو كمبيوتر محمول!

تمديد قائمة الأجهزة


كما قلت سابقًا ، يمكنك إضافة دعم للأجهزة المخصصة أو مجموعات الأجهزة دون تحرير مصدر المكتبة. للقيام بذلك ، قبل استيراد @import "mediascreen" استيراد @import "mediascreen" ، تحتاج إلى إعلان متغير Sass $ms-devices باستخدام قائمة من أجهزتك:

 $ms-devices: ( desktop-sm: ( group: true, //   -   min: 1200px, max: 1919px, ), desktop-md: ( group: true, min: 1920px, max: 2879px, ), desktop-lg: ( group: true, min: 2880px, ), pixel2xl: ( group: false, //   -   width: 411px, // or 412px?.. height: 823px, pixel-ratio: 3.5, ), macbook12: ( group: false, orientation: landscape, width: 1440px, height: 900px, pixel-ratio: 2, ), imac27: ( group: false, orientation: landscape, width: 5120px, height: 2880px, ), ); @import "mediascreen"; 

بعد ذلك ، يمكنك التحقق من أجهزتك وكذلك أجهزة المكتبة القياسية:

 @include device(desktop-sm) { // desktop-sm } @include device(desktop-md) { // desktop-md } @include device(desktop-lg) { // desktop-lg } @include device(Pixel2XL, landscape) { // landscape orientation // Google Pixel 2XL } @include device(MacBook12) { // landscape orientation // MacBook 12 } @include device(iMac27) { // landscape orientation // iMac 27 } 

مراجع


مكتبة على جيثب
مكتبة في مستودع Npm
الصفحة التجريبية

Source: https://habr.com/ru/post/ar471044/


All Articles