loginerror
(Maciej Kuźmicz)
14 فبراير 2020، 4:58م
1
مواصلة النقاش من كيفية تنسيق صفحة /categories؟ :
لدي سؤال يتعلق بنقاش أقدم.
ما مدى سهولة تحقيق هذا:
أقرب ما وصلت إليه هو هذا:
بتطبيق column-count: 2 على DIV المحيط بالجدول و display: block على عناصر الجدول.
لكنني لست متأكدًا من كيفية إجبار العنوان على التمدد عبر السطر بالكامل
تعديل.
لقد أدركت للتو أنه وظيفيًا، سأضطر إما إلى تكرار صف العنوان هذا، أو ترك “التصنيفات” فقط، أو ببساطة إخفاءه بالكامل…
3 إعجابات
أعتقد أنه قد يكون من الأسهل إذا قمت بتعيين display: block و column-count: 2 لـ tbody؟ عندها سيبقى thead يمتد عبر العرض الكامل.
لكن نعم، في هذه المرحلة ستحتاج إلى إخفاء كل شيء ما عدا “الفئة” على أي حال.
3 إعجابات
Canapin
(Coin-coin le Canapin)
14 فبراير 2020، 5:16م
3
بديل باستخدام الفليكس بوكس:
.category-list tbody {
display: flex;
flex-wrap: wrap;
}
.category-list tbody tr {
width: 50%;
display: flex;
}
.category-list tbody .category {
flex: 1;
}
لا يزال هناك بعض التعديلات التي يجب إجراؤها.
9 إعجابات
loginerror
(Maciej Kuźmicz)
14 فبراير 2020، 5:18م
4
في خضم ذلك، نسيتُ أنه سيكون من الجيد الحفاظ على المحاذاة الأفقية.
هذا رائع
Canapin
(Coin-coin le Canapin)
14 فبراير 2020، 11:19م
5
لاحظ أنه مع هذا التنسيق CSS، لن تُعرض الفئات على النحو التالي:
1 - 4
2 - 5
3 - 6
بل على النحو التالي:
1 - 2
3 - 4
5 - 6
كما تحتاج إلى إضافة استعلام وسائط (media query) لتغيير النمط على الشاشات الصغيرة.
4 إعجابات
loginerror
(Maciej Kuźmicz)
18 فبراير 2020، 9:18ص
6
لقد جربتُ الخيارين قليلاً، ويبدو أن تقسيم جدول الفئات إلى نصفين بدلاً من ترتيبها تسلسلياً هو الأنسب لغرضنا.
ومع ذلك، من الصعب التحكم في نقطة التقسيم.
تمكنت من تحقيق ذلك في متصفحي:
ولكن فقط عندما وضعت الفئات على اليسار داخل عنصر div بشكل مصطنع (لمنع التقسيم المبكر جداً، وإلا فإن فئة الجذر “Measure” ستنتقل إلى العمود الأيمن):
هل توجد طريقة لـ “تجميع” الصفوف ذات معرفات الفئات المحددة داخل عنصر div، ربما عبر واجهة برمجة التطبيقات (API) للمظهر؟
إعجاب واحد (1)
Canapin
(Coin-coin le Canapin)
18 فبراير 2020، 10:23ص
7
ما تطلبه يبدو معقداً وقد يتطلب بعض السحر البرمجي باستخدام JavaScript.
بخصوص خاصية CSS column، أنا واثق من أن الفئات لن تكون متراصة أفقياً (إلا إذا قمت بتعيين ارتفاع ثابت) كما هو الحال مع Flexbox، وهذا لا يبدو جميلاً.
لقد حققت ما تريده، لكن الطريقة المستخدمة فيها بعض الحيل:
استخدمت تنسيقي السابق ، ثم أضفت عنصر <tr> فارغاً (أعتقد أنه يمكن فعل ذلك بسطر واحد من JavaScript) وقمت بتعيين خاصية order لتغيير ترتيب عناصر div. يمكن تنفيذ هذا الأخير باستخدام CSS فقط من خلال استهداف كل قيمة data-category-id في HTML. إليك النتيجة:
إليك عنصر <tr> الفارغ:
لاحظ أنك ستحتاج على الأرجح إلى تعديل CSS و/أو JavaScript في كل مرة تضيف أو تحذف فئة.
تعديل: إذا كنت بحاجة إلى عنصر فارغ واحد أو اثنين إضافيين فقط، فلا تحتاج لاستخدام JavaScript لإضافة <tr>، بل يمكنك استخدام :after و/أو :before بهذه الطريقة:
.category-list tbody:after {
width: 1px;
content: "";
}
هذا يضيف عنصراً فارغاً بعرض 1 بكسل يعمل بنفس الطريقة.
3 إعجابات
loginerror
(Maciej Kuźmicz)
18 فبراير 2020، 12:38م
8
شكرًا لك، لقد سار الأمر بشكل جيد جدًا لا مانع لدينا من إدارة الفئات عن كثب، لذا فإن كل شيء على ما يرام.
يمكن رؤية النتيجة النهائية في منتدانا.
إعجاب واحد (1)
Canapin
(Coin-coin le Canapin)
18 فبراير 2020، 1:27م
9
هل يمكنك مشاركة رابط المنتدى الخاص بك؟
إعجاب واحد (1)
loginerror
(Maciej Kuźmicz)
18 فبراير 2020، 1:29م
10
Canapin:
رابط المنتدى
بالطبع، إنه موجود في ملفي الشخصي ولم أكن أريد الإعلان المباشر
إعجابَين (2)