أعتقد أنه في الآونة الأخيرة أصبح الفرق في حجم الشاشة بين مجموعات الأجهزة المختلفة أكثر وضوحًا. على الرغم من ذلك ، حاولت كتابة أداة لتحديد مجموعتي الأجهزة (الهواتف المحمولة والأجهزة اللوحية وأجهزة الكمبيوتر المحمولة وأجهزة سطح المكتب) وأجهزة معينة (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الصفحة التجريبية