ما روشهای بسیاری را برای استایلسازی عناصر در یک صفحه مانند اطلاعات متن، پیوندها، تصاویر، عنوانها بررسی کردهایم، اما همه اینها هنوز کافی نیست. در مقالات خود اغلب از عناصر HTML مانند جداول استفاده می کنم، زیرا در بیشتر موارد آنها از آنها استفاده می کنند کمک به سازماندهی اطلاعات مهم و ساده تر کردن ارائه آن.
در این مقاله، شما را با پیچیدگی های استایل بندی جداول HTML آشنا می کنم و با ویژگی های جدید CSS که برای دستیابی به این اهداف طراحی شده اند، آشنا می شوید.
زبان نشانه گذاری فرامتن HTML فرصت های زیادی را برای اتصال سبک های CSS به ده تگ منحصر به فرد طراحی شده برای کار با جداول در اختیار ما قرار داده است، پیشنهاد می کنم قبل از مطالعه بیشتر آنها را تکرار کنید:
برچسب بزنید | شرح | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
کار با تورفتگی جدول
در این مثال ما:
نتیجه مثال ما: فضای بین سلول هاپس از مثالی که در بالا توضیح داده شد، ممکن است متوجه شده باشید که ما هنوز بین تمام خانه های جدول فاصله داریم. بیایید نحوه حذف فضای بین سلول های جدول یا افزایش آن را بررسی کنیم. برای تعیین فاصله بین مرزهای سلول های مجاور، باید از ویژگی CSS border-spacing استفاده کنید.
در این مثال ما:
لطفاً توجه داشته باشید که اگر فقط یک مقدار طول در ویژگی border-spacing مشخص شده باشد، فواصل را به صورت افقی و عمودی نشان می دهد و اگر دو مقدار طول مشخص شده باشد، اولی فاصله افقی و دومی عمودی را مشخص می کند. . فاصله بین مرزهای سلول های مجاور را می توان در واحدهای CSS (px، cm، em و غیره) مشخص کرد. مقادیر منفی مجاز نیستند. نتیجه مثال ما: مرزهای اطراف سلولهای جدول را نشان دهیدمی توانی بگویی: - بنابراین، ما فضای بین سلول ها را با استفاده از ویژگی border-spacing با مقدار 0 حذف کردیم، اما چرا مرزهای سلول ما اکنون قطع می شوند؟ مرزهای دوتایی به این دلیل ایجاد می شود که مرز پایینی یک سلول به مرز بالای سلولی که در زیر آن قرار دارد اضافه می شود، وضعیت مشابهی در طرفین سلول ها رخ می دهد و این از نظر نمایش جدول منطقی است، اما خوشبختانه راهی وجود دارد که به مرورگر بگوییم که ما نمیخواهیم چنین رفتار ضعیفی در مرزهای سلولی ببینیم. برای انجام این کار، باید از ویژگی border-collapse CSS استفاده کنید. به اندازه کافی عجیب، استفاده از ویژگی border-collapse با مقدار collapse بهترین راه برای حذف فضای بین سلول ها بدون ایجاد مرزهای دوگانه بین آنها است. بیایید رفتار مرزها را در هنگام استفاده از ویژگی border-spacing با مقدار 0 و ویژگی border-collapse با مقدار collapse مقایسه کنیم:
در این مثال ما:
نتیجه مثال ما: رفتار سلول های خالیمیتوانید از CSS برای تعیین اینکه آیا حاشیهها و پسزمینههای سلولهای خالی در جدول نمایش داده شوند یا خیر، استفاده کنید. این رفتار توسط ویژگی vala-cells کنترل می شود که به طور پیش فرض همانطور که در مثال های قبلی متوجه شده اید سلول های خالی را نمایش می دهد. بیایید به یک مثال حرکت کنیم:
برای درک نحوه عملکرد ویژگی سلولهای خالی از این مثال بسیار ساده است، اگر روی مخفی کردن تنظیم شود، سلولهای خالی و پسزمینه موجود در آنها پنهان میشوند، اگر روی نمایش (پیشفرض) تنظیم شود، نمایش داده میشوند. محل سرصفحه جدولبیایید به ویژگی ساده دیگری برای استایل دادن به جداول نگاه کنیم - caption-side , که موقعیت هدر جدول (بالا یا زیر جدول) را تعیین می کند. به طور پیشفرض، ویژگی Caption-side روی بالا تنظیم میشود که عنوان را بالای جدول قرار میدهد. برای قرار دادن عنوان زیر جدول، باید از ویژگی با مقدار پایین استفاده کنید. بیایید به مثالی از استفاده از این ویژگی نگاه کنیم:
در این مثال ما ایجاد کردیم دو کلاس، که موقعیت هدر جدول را کنترل می کند. کلاس اول ( .topCaption) عنوان جدول را بالای آن قرار می دهد، ما آن را روی جدول اول اعمال کردیم و کلاس دوم ( .bottomCaption) عنوان جدول را در زیر آن قرار می دهد، ما آن را در جدول دوم اعمال می کنیم. کلاس .topCaptionدارای مقدار ویژگی پیش فرض سمت عنوان است و برای اهداف نمایشی ایجاد شده است. نتیجه مثال ما: تراز افقی و عمودیدر بیشتر موارد، هنگام کار با جداول، باید تراز محتوا را در سلولهای هدر و داده تنظیم کنید. ویژگی text-align برای تراز افقی، مشابه هر اطلاعات متنی استفاده می شود. ما قبلاً در مقاله "" در مورد استفاده از این ویژگی برای متن بحث کردیم. برای تنظیم تراز برای محتوا در سلول ها، باید از کلمات کلیدی ویژه با ویژگی text-align استفاده کنید. بیایید استفاده از کلمات کلیدی برای این ویژگی را در مثال زیر بررسی کنیم.
در این مثال ما ایجاد کردیم چهار کلاس، که ترازهای افقی مختلف را در سلول ها مشخص می کند و آنها را به ترتیب در ردیف های جدول اعمال می کند. مقدار موجود در سلول با مقدار ویژگی text-align مطابقت دارد نتیجه مثال ما: علاوه بر تراز افقی، می توانید با استفاده از ویژگی vertical-align، تراز عمودی را در سلول های جدول نیز تعریف کنید. لطفاً توجه داشته باشید که هنگام کار با سلول های جدول، فقط مقادیر * زیر این ویژگی اعمال می شود: * - مقادیر زیر، فوق العاده، متن بالا، متن پایین، طول و درصد اعمال شده در سلول جدول به گونه ای رفتار خواهند کرد که گویی از مقدار پایه استفاده می کنند. بیایید به یک مثال استفاده نگاه کنیم:
در این مثال ما ایجاد کردیم چهار کلاس، که ترازهای عمودی مختلف را در سلول ها مشخص می کند و آنها را به ترتیب در ردیف های جدول اعمال می کند. مقدار موجود در سلول مربوط به مقدار ویژگی vertical-align است که به آن سطر اعمال شده است. الگوریتم قرار دادن طرح جدول در مرورگرCSS بهطور پیشفرض از الگوریتمی برای مرورگر استفاده میکند تا بهطور خودکار طرحبندی جدول را مرتب کند. در این مورد عرض ستون با وسیع ترین محتوای بدون شکست سلول تنظیم می شود. این الگوریتم در برخی موارد می تواند کند باشد زیرا مرورگر باید تمام محتویات جدول را قبل از تعیین طرح نهایی خود بخواند. برای تغییر نوع طرح بندی جدول مرورگر با خودکاربر درست شد، باید از جدول-layout ویژگی CSS با مقدار ثابت استفاده کنید. در این مورد، قرار دادن افقی فقط بستگی دارد بر روی عرض جدول و عرض ستون ها و نه بر روی محتوای سلول ها.مرورگر بلافاصله پس از دریافت ردیف اول شروع به نمایش جدول می کند. در نتیجه، یک الگوریتم ثابت به شما امکان می دهد طرحی برای چنین جدولی سریعتر از استفاده از گزینه خودکار ایجاد کنید. هنگام کار با جداول بزرگ، می توانید از یک الگوریتم ثابت برای بهبود عملکرد استفاده کنید. بیایید با استفاده از مثال زیر به استفاده از این ویژگی نگاه کنیم:
در این مثال ما: استایل بندی ردیف ها و ستون های جدولما قبلاً در مقاله "" تا حدی روش هایی را برای استایل بندی ردیف ها و ستون های جدول لمس کرده ایم. در این مقاله، ما استفاده از گروه شبه کلاس را بررسی کردیم که به شما امکان می دهد سبک های ردیف را در جداول با استفاده از مقادیر جایگزین کنید. زوج (صادقانه) و فرد (فرد) یا به صورت ابتدایی فرمول ریاضی. بیایید تکنیکهایی را که قبلاً پوشش دادیم مرور کنیم و روشهای جدید برای استایل دادن به ردیفها و ستونها در جداول را بررسی کنیم. بیایید به سراغ مثال ها برویم.
در این مثال ما: نتیجه مثال ما: بیایید به مثال بعدی برویم، که در آن به گزینه هایی برای استایل دادن به ردیف های جدول خواهیم پرداخت.
در این مثال ما:
|