نحوه ساخت بلندگو
ابتدا به چند روش برای ایجاد ستون نگاه می کنیم و سپس به چند نمونه نگاه می کنیم.
استفاده از بلوک های شناور امروزه این محبوب ترین راه برای ساخت بلندگوها است، اگرچه Flexbox کم کم جایگزین آن می شود. به طور پیش فرض، دو بلوک در یک جریان عادی نمی توانند در یک خط باشند، اما این رفتار را می توان به راحتی با انتساب ویژگی float به هر دو تغییر داد: left | درست. آنها شروع به فشار دادن روی لبه چپ یا راست خواهند کرد. برای اینکه بلوک زیر آنها بلوک های شناور را بپذیرد و به درستی قرار گیرد، باید آن را به صورت پاک تنظیم کرد: هر دو.
با استفاده از شناورها، اغلب 2 یا 3 ستون ساخته می شود. چیدمان یک سایت با بلوک های شناور خیلی پیچیده نیست، فقط باید برخی از تفاوت های ظریف رفتار آنها را بدانید. به عنوان مثال، اگر شما نیاز به ایجاد یک منطقه برای نمایش مقالات دارید، و در سمت راست - یک ستون کناری با یک منو، بلوک های شناور می توانند به راحتی چنین ترتیبی را اجرا کنند.
استفاده از جداول جداول به طور کلی برای نمایش تعداد زیادی سلول و ستون ایجاد میشوند، بنابراین اضافه کردن ستونها به آنها به آسانی پای است. یک جدول می تواند حداقل 20 ستون داشته باشد. کل ساختار آن در کد html مشخص شده است، بنابراین کد کاملاً دست و پا گیر است.
از آنجایی که سلول های یک جدول را می توان به هر اندازه ای تنظیم کرد، قبلاً تقریباً همه وب سایت ها با استفاده از آنها طراحی می شدند. به عنوان مثال، برای پیاده سازی ساده ترین چیدمان (هدر، محتوا، نوار کناری، پاورقی)، سه ردیف در جدول ساخته شد (ردیف جدول با تگ tr تشکیل می شود). هر ردیف شامل دو سلول است زیرا محتوا و نوار کناری باید جدا از یکدیگر قرار گیرند. و در هدر و پاورقی، در صورت لزوم، این سلول ها به سادگی با استفاده از ویژگی colspan در تگ td به هم متصل شدند.
شما به راحتی می توانید قاب را از سلول ها حذف کنید، که به توسعه دهندگان وب اجازه می دهد تا قالب های پیچیده را به راحتی چیدمان کنند.
با استفاده از Flexbox این یک فناوری مدرن است که در سال 2014 شروع به گسترش کرد، اگرچه قبل از آن وجود داشت. ماهیت آن به شرح زیر است: یک بلوک کانتینر مشترک ایجاد می شود که بلوک های دیگری در آن قرار می گیرند که باید به شکل ستون ساخته شوند، سپس به این ظرف باید نمایش داده شود: flex.
در مرحله بعد، ویژگی flex-direction معمولاً تنظیم می شود که جهت محور اصلی که بلوک ها در امتداد آن قرار خواهند گرفت را تعیین می کند. مقادیر را می توان به: ردیف و ستون تنظیم کرد. مقدار اول بلوک ها را به صورت افقی از راست به چپ هدایت می کند، دومی - پایین. همچنین می توانید معکوس را تنظیم کنید: flex-direction: row-reverse. بلوک ها از راست به چپ قرار خواهند گرفت.
همچنین مجموعه ای از ویژگی های جداگانه برای بلوک های فرزند یک ظرف فلکس وجود دارد. اساساً، این ویژگی ها به شما امکان می دهد اندازه بلوک و رفتار آن را نسبت به عناصر دیگر تنظیم کنید.
مزیت flexbox این است که یک عنصر بسیار انعطاف پذیرتر است. اگر با طرح بندی بلوک، توسعه دهندگان وب اغلب مجبور بودند همه چیز را پیکسل به پیکسل محاسبه کنند، تورفتگی های صحیح را تنظیم کنند، ترفندهای مختلفی را به کد اضافه کنند تا همه چیز از هم نپاشد، پس عناصر انعطاف پذیر را می توان به راحتی در یک ستون، در یک ردیف و به طور کلی مرتب کرد. نیاز به محاسبات ریاضی بسیار کمتری از سوی توسعه دهنده دارد.
تقسیم متن به ستون
با این حال، من هنوز به مهم ترین موضوع دست نزده ام. امروزه CSS این امکان را ارائه می دهد که متن را در یک بلاک بدنه بدون کمک شناورها، جداول یا فلکس باکس ها تجزیه کنید. یعنی در html یک بلوک معمولی باقی می ماند و متن صرفاً به لطف css به ستون ها تقسیم می شود.
بنابراین، ویژگی های زیر برای بلوکی اعمال می شود که در آن متن باید به چندین ستون تقسیم شود.
Column-count – خاصیت تعداد ستون هایی را که متن باید به آنها تقسیم شود را مشخص می کند. توصیه می شود بسته به آنچه بیشتر دوست دارید، مقدار را از 2 تا 4 تنظیم کنید.
Column-width - تعداد کاراکترهای متن را در یک ستون تنظیم می کند. من تأکید می کنم که عرض ستون در این مورد نه با پیکسل، بلکه با تعداد کاراکترها تعیین می شود. بهینه: 30-50 کاراکتر در یک ستون. همچنین به هیچ وجه نمی توان این ویژگی را cross-browser نامید، زیرا شما فقط تعداد کاراکترهای دلخواه را تنظیم می کنید، اما اینکه آیا مرورگر مطابق خواسته شما عمل می کند یا خیر، باید دید.
Column-gap - فضای بین ستون ها را مشخص می کند. را می توان در پیکسل مشخص کرد.
ستون-قاعده - خطی را رسم می کند که ستون ها را از هم جدا می کند. سینتکس ویژگی دقیقاً مشابه ویژگی border است. ابتدا ضخامت خط و سپس نوع آن و سپس رنگ آن ثبت می شود.
همچنین می خواهم اشاره کنم که همه این ویژگی های css نسبتا جدید هستند. به عنوان مثال، اینترنت اکسپلورر فقط از نسخه ده پشتیبانی می کند. اینها ویژگی های استاندارد CSS3 هستند، بنابراین اگر می خواهید از آنها در سایت خود استفاده کنید، باید از سازگاری بین مرورگرها مراقبت کنید، در غیر این صورت در نسخه های قدیمی Opera و IE هیچ ستونی وجود نخواهد داشت.
مثال ها
بلوک های شناور چیدمان یک سایت در دو ستون اغلب بسیار ساده با استفاده از بلوک های شناور انجام می شود. در css این چیزی شبیه به این پیاده سازی می شود:
Float-block1( float: چپ ) .float-block2( float: چپ) بلوکی که باید زیر شناورها باشد( روشن: چپ | هر دو)
یعنی بلوک پایین باید این ویژگی را مشخص کند تا به درستی قرار گیرد. بنابراین، بلوک های شناور اگر عرض کافی در عنصر والد داشته باشند به یک خط تبدیل می شوند. به طور طبیعی، شما همچنین باید عرض، ارتفاع و قاب بلوک ها را مشخص کنید تا مانند تصویر زیر باشد:
حالا بیایید قسمت سرگرم کننده را انجام دهیم. بیایید متن تصادفی زیادی را به بلوک اصلی اضافه کنیم و سعی کنیم آن را در سه ستون مانند روزنامه یا مجله نمایش دهیم. برای این کار باید قوانین زیر را به کد این بلوک اضافه کنید.
در مقاله امروز می خواهم در مورد روش جدیدی برای ایجاد ستون های با ارتفاع مساوی با استفاده از CSS صحبت کنم. دیگر نیازی به جاوا اسکریپت نیست تا ارتفاع ستون برای همه یکسان باشد. ماهیت این روش استفاده از یک ویژگی جدید CSS3 است که به ما گزینه های بسیار بیشتری نسبت به ایجاد ستون هایی با ارتفاع یکسان می دهد. اما در این درس خواهیم دید که حل این مشکل دردناک چقدر آسان است.
صفحه آرایی
بخش HTML
بیایید دو ستون تعریف کنیم که بعداً با استفاده از CSS ارتفاع آنها را برابر خواهیم کرد:
1 2 3 4 5 6 7 8 | id = "صفحه" > <div id = "اصلی" > </div> |
یعنی باید بلوک را درست کنیم بیایید یک flexbox برای کانتینر اصلی تعریف کنیم که شامل دو بلوک است: عالی! اکنون باقی مانده است که عرض بلوک مرکزی را با محتوای اصلی و برای نوار کناری تنظیم کنیم: توضیحات: صفحه ما رو به اتمام است. اما وقتی بلوک با محتوای اصلی باریک می شود، صفحه بسیار طولانی می شود. بنابراین، در عرض صفحه مشخصی، میتوانیم نوار کناری را با محتوای اصلی به زیر بلوک برسانیم و به راحتی در دستگاههای تلفن همراه مشاهده شود: این کد بدون پیشوند است تا فضای زیادی را اشغال نکند و دست و پا گیر به نظر نرسد. می توانید با استفاده از دکمه ابتدای مقاله یک نمونه کاملاً کارآمد دریافت کنید. در مورد اینکه این روش کجا کار می کند نیز باید گفت. از آنجایی که این ویژگی کاملاً جدید است، در مرورگرهای مدرن فایرفاکس، کروم، سافاری، اپرا و IE 11 کار می کند. در این مقاله یاد گرفتید که چگونه با استفاده از CSS، ستون ها را به همان ارتفاع بسازید. اما این همه قابلیت های این ویژگی CSS نیست. ویژگی flex به شما این امکان را می دهد که بلوک ها را لاستیکی کنید، عناصر را به طور خودکار در چندین ستون یا ردیف قرار دهید، کل منطقه آزاد را اشغال کنید و موارد دیگر. اما ما در این مقاله ابتدایی ترین و مهم ترین راه حل پرکاربرد را برای صفحه آرایی مورد بحث قرار دادیم. این صفحه نمونه هایی را شرح می دهد که به شما امکان می دهد این کار را انجام دهید ستون هایی با همان ارتفاعدر طرح بندی با طرح بندی بلوکی. برای بسیاری از طراحان چیدمان مبتدی، این یک مشکل قطعی است، زیرا اگر ارتفاع ستونهای چیدمان به صراحت مشخص نشده باشد، آنقدر کشیده میشوند تا محتوای خود را در خود جای دهند. بر این اساس، معلوم می شود که به جای ارتفاع یکسان، هر ستون در طرح بندی خود را دارد که خیلی زیبا به نظر نمی رسد. برای وضوح بیشتر، همه مثالها از طرحبندی با استفاده میکنند پاورقی فشرده. بنابراین، توجه شما را به این واقعیت جلب میکنم که برخی از بلوکها یا ویژگیهای CSS که در ایجاد ستونهایی با همان ارتفاع نقش دارند، در ابتدا در طرحبندیها وجود دارند. یعنی در پایان آنها عملکردهای دوگانه را انجام می دهند - پاورقی را به پایین فشار می دهند و ستون ها را می کشند. با این حال، برای راحتی بیشتر، تنها ویژگی هایی ارائه می شوند که ستون ها را ترسیم می کنند نظرات CSS، و مهم نیست که آنها برای اهداف دیگری استفاده می شوند یا نه. این مثال بر اساس اصل شبه ستون های اضافی و موقعیت یابی مطلق است. برای این کار، چندین بلوک (با توجه به تعداد ستون ها) ایجاد می شود که تا ارتفاع کامل صفحه کشیده شده و زیر ستون های واقعی قرار می گیرند. به منظور ایجاد جلوه ستون های هم ارتفاع، به این شبه ستون ها رنگ پس زمینه مورد نیاز داده می شود. از آنجایی که اینترنت اکسپلورر 6 با این روش ایجاد ستون های هم ارتفاع مشکل دارد، روش های مختلفی برای این روش استفاده شده است. هک ها: این مثال ساده ترین برای پیاده سازی است و شامل این واقعیت است که یک تصویر کوچک "افقی" ایجاد می شود که از چندین رنگ (با توجه به تعداد ستون ها) تشکیل شده است که سپس به صورت عمودی "ضرب" می شود و ستون ها را شبیه سازی می کند. متأسفانه، این روش فقط برای طرحبندیهای ثابت مناسب است و فراموش نکنید که در مرورگری با تصاویر غیرفعال، هیچ ستونی وجود نخواهد داشت.
تصویر پس زمینه ای که در مثال استفاده شده قابل مشاهده است. با کمک آن بود که ظاهر ستون هایی با همان ارتفاع ایجاد شد. این مثال از یک تکنیک نسبتاً غیر معمول استفاده می کند. ابتدا به همه ستونها حاشیههای پایینی بسیار بزرگ داده میشود که به همین دلیل کشیده میشوند و سپس حاشیههای پایینی با همان اندازه، اما ارزش منفی دارند. در پایان، هر چیزی که "اضافی" است به سادگی قطع می شود.
این روش متقاطع مرورگر است و همه آن را درک می کنند، از جمله اینترنت اکسپلورر 6. اما همراه با نحوه فشار دادن فوتر، از درست کار کردن خودداری می کند. من برای این پیرمرد «عصاهای زیر بغل» جدیدی ابداع نکردم، بلکه برعکس، چند ویژگی را حذف کردم که به او کمک میکنند پاورقی را فشار دهد. بنابراین، هنگام اضافه کردن محتوا به ستون ها، در IE6 همه چیز همانطور که انتظار می رود جریان دارد. با ظهور اندازهها و رزولوشنهای مختلف صفحه نمایش، ایجاد طرحهایی با بلوکهای متن ثابت که تمام عرض صفحه را اشغال میکنند، بسیار غیرعملی شده است. روش سنتی تقسیم متن به دو ستون است و این کار اغلب به صورت دستی انجام می شود و زمان بر است. یا متن با استفاده از جاوا اسکریپت جدا می شود که برای همه موقعیت ها مناسب نیست. علاوه بر این، ما باید بتوانیم این کار را با CSS بدون توسل به سیستم های شبکه یا عناصر شناور انجام دهیم، درست است؟ CSS3 در واقع به شما این امکان را می دهد که متن را به چندین ستون تقسیم کنید و همچنین اندازه ناودان (فاصله بین ستون ها) را تنظیم کنید و به این ترتیب می توانید به جای استفاده از چارچوب یا سیستم شبکه ای، کنترل کاملی بر ستون ها داشته باشید. به علاوه، CSS3 برای زمانی که کاربر از Netscape Navigator استفاده می کند، برای مثال، بک گراندهای عالی ارائه می دهد، بنابراین طرح بندی سایت شما همچنان عالی به نظر می رسد. پشتیبانی از مرورگر
توجه به این نکته مهم است که در حالی که تقریباً همه مرورگرهای مدرن از چند ستون CSS3 (بله، حتی IE10) پشتیبانی می کنند، بسیاری از مرورگرهای قدیمی مانند IE9 چنین پشتیبانی را ارائه نمی دهند. اگرچه پشتیبانی بسیار خوب است، ممکن است مجبور شوید از پیشوندهای مرورگر برای وب کیت (-webkit-) و موزیلا (-moz-) استفاده کنید. با این حال، لازم نیست از -ms- یا -o- برای IE و Opera استفاده کنید، زیرا آنها با پشتیبانی کامل یا جزئی عرضه می شوند. این ویژگی CSS به شما کنترل بسیار زیادی بر نحوه نمایش محتوای شما در پنجره مرورگر می دهد، و اجازه دهید نگاهی به این گزینه ها بیندازیم: * تعداد ستون: در اینجا می توانید تعداد ستون هایی که باید در عنصر نمایش داده شوند را مشخص کنید. با همه این گزینه ها، فکر نمی کنیم برای کنترل بلندگوها به چیز دیگری نیاز داشته باشیم. البته، برای اینکه چندین بلندگو به درستی کار کنند، لزوماً به همه این پارامترها نیاز نداریم. علاوه بر این، به طور کلی، ما فقط به پارامتر شمارش ستون نیاز داریم، اما احتمالاً همیشه از یک شکاف ستون برای جلوگیری از ادغام متن ستون با مرزهای آن استفاده میکنید. برای پیاده سازی این در عمل، فقط به چند خط کد نیاز داریم: /* این یک طرح 3 ستونی با فاصله 20 پیکسل بین هر ستون ایجاد می کند */ /* این یک طرح بندی 3 ستونی و یک شکاف 20 پیکسلی بین هر ستون و یک قاعده 1 پیکسلی سیاه یکپارچه ایجاد می کند */ Cols3 ( /*این h1 فضای 3 ستون را اشغال می کند*/ و اکنون می خواهیم کد تکمیل شده این افکت را به شما ارائه دهیم: Cum sociis natoque penatibus et magnis dis parurient montes, nascetur ridiculus mus. Nullam quis risus eget urna mollis ornare vel eu leo. Nullam id dolor id nibh ultrices vehicula ut id elit. Duis mollis، est non commodo luctus، nisi erat porttitor ligula، eget lacinia odio sem nec elit. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vivamus sagittis lacus vel augue laoreet rutrum faucibus dolor auctor. Aenean lacinia bibendum nulla sed consectetur. Cras mattis consectetur purus sit amet fermentum. عدد صحیح posuere erat a ante venenatis dapibus posuere velit aliquet. Etiam porta sem malesuada magna mollis euismod. Etiam porta sem malesuada magna mollis euismod. Nullam quis risus eget urna mollis ornare vel eu leo. Fusce dapibus، telus ac cursus commodo، Tortor Mauris Condimentum nibh، ut fermentum massa justo sit amet risus. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Cum sociis natoque penatibus et magnis dis parurient montes, nascetur ridiculus mus. Fusce dapibus، telus ac cursus commodo، Tortor Mauris Condimentum nibh، ut fermentum massa justo sit amet risus. Vivamus sagittis lacus vel augue laoreet rutrum faucibus dolor auctor. Aenean eu leo quam. Pellentesque ornare sem lacinia quam venenatis vestibulum. Nullam quis risus eget urna mollis ornare vel eu leo. Aenean lacinia bibendum nulla sed consectetur. Curabitur blandit tempus porttitor. Cras mattis consectetur purus sit amet fermentum. Aenean lacinia bibendum nulla sed consectetur. Donec id elit non mi porta gravida at eget metus. Curabitur blandit tempus porttitor. به نظر ما، تغییر به ایجاد ستونها با استفاده از CSS، مزایای زیادی به ما میدهد - دیگر نیازی به انجام هیچ گونه محاسبات ریاضی، ایجاد عناصر شناور و دیگر نیازی به تحمل شکست محتوا در هنگام تغییر اندازه پنجره مرورگر نداریم. همچنین میتوانید کد را به شیوهای معناییتر بنویسید، و از آنجایی که این روش توسط همه مرورگرهای مدرن پشتیبانی میشود، امروز میتوانید به آن تغییر دهید. آیا ستون های خود را با CSS3 استایل می کنید یا هنوز از شناورها و موقعیت یابی استفاده می کنید؟ از چه روش هایی برای حل مشکلاتی که در مرورگرهای قدیمی با آن مواجه می شوید استفاده می کنید؟ به اشتراک گذاشتن با ما در نظرات. ولاد مرژویچ یک شبکه مدولار دو ستونی اغلب در وب سایت ها استفاده می شود و به عنوان یک قاعده، یک ستون حاوی مطالب اصلی (مثلاً متن یک مقاله) و دومی حاوی پیوندهایی به بخش های سایت و سایر اطلاعات است. برای ایجاد چنین طرح بندی، جداول بسیار راحت هستند - هر سلول به عنوان یک ستون جداگانه عمل می کند، که تنظیم پارامترهای مختلف نمایش اسناد را آسان می کند. ابتدا، اجازه دهید ساده ترین گزینه را در نظر بگیریم، زمانی که عرض ستون سمت چپ به صورت پیکسلی کدگذاری شده است و عرض ستون سمت راست بسته به اندازه پنجره مرورگر متفاوت است. برای انجام این کار، باید عرض کل کل جدول را به صورت درصد از طریق ویژگی width تگ تنظیم کنید ستون هایی با همان ارتفاع
بخش CSS
نتیجه
ستون هایی با همان ارتفاع با استفاده از موقعیت
شرح مثال
ستون هایی با ارتفاع مساوی با استفاده از تصویر پس زمینه
شرح مثال
ستون هایی با ارتفاع مساوی با استفاده از حاشیه و بالشتک
شرح مثال
گزینه ها
* عرض ستون: عرض یک ستون. آماده باشید که مرورگرها گاهی اوقات این مقدار را به تنهایی تغییر دهند.
* شکاف ستون: عرض شیار بین ستون ها.
* ستون-قاعده-عرض: این چیزی شبیه مرزهای ستون های شماست و در اینجا باید عرض حاشیه را مشخص کنید.
* ستون-قاعده-سبک: همچنین چیزی شبیه حاشیه اگر نیاز به تنظیم سبک دارید.
* ستون-قاعده-رنگ: از این پارامتر برای تعیین رنگ استفاده می شود.
* دهانه ستون: این مقدار به مرورگر میگوید که چند ستون میخواهید بپیوندید - خوب است که برای سرصفحهها استفاده کنید و مانند colspan و rowspan در جداول کار میکند.
cols3 (
تعداد ستون: 3;
شکاف ستون: 20 پیکسل.
}
اگر میخواهید یک قانون را نیز به ستونها اعمال کنید، باید این پارامترها را اضافه کنید:
cols3 (
تعداد ستون: 3;
شکاف ستون: 20 پیکسل.
ستون-قاعده-عرض: 1px;
ستون-قاعده-سبک: جامد;
column-rule-color: #000;
}
درست مانند گزینه شناخته شده حاشیه، می توانید رنگ، سبک و عرض را مانند این اعمال کنید:
تعداد ستون: 3;
شکاف ستون: 20 پیکسل.
ستون-قاعده: 1px جامد #000;
}
اگر یک هدر دارید و به آن هدر نیاز دارید که تمام عرض همه ستون ها را بپوشاند، باید خط کد زیر را اضافه کنید:
.cols3 h1(
ستون-span: همه;
}
شما می توانید این تکنیک را تقریباً برای هر کد HTML، از یک پاراگراف تا چندین عنصر "div" اعمال کنید. بیایید به نسخه ی نمایشی نگاه کنیم:
عدد صحیح posuere erat a ante
تکمیل
عرض ستون