PDA

View Full Version : سوال: روش درست کردن سی اس اس هوشمند



Mostafa_
دوشنبه 15 تیر 1394, 19:10 عصر
باسلام خدمت دوستان
یه سوال داشتم
میخواستم بدونم چطور میشه فایل سی اس اس رو به صورت داینامیک درست کنم؟
مثلا میخوام رنگ بکگراند از دیتابیس خونده بشه و تنظیم بشه که بشه بعدا تغییرش داد
اصلا میشه همچین کاری کرد
اگه میشه راهنمایی کنین ممنون

FastDesign.ir
دوشنبه 15 تیر 1394, 23:28 عصر
سلام
شما می توانید با فایل سی اس اس مانند یک فایل متنی رفتار نموده و با streamwriter آن را ایجاد یا ویرایش نمایید(تنها باید پسوند آن را به css تغییر دهید)
در این صورت برای اعمال تغیرات در کاربرانی که قبلا مرورگرشان فایل شما را کش نموده است، باید در هنگام استفاده از link به آخر نام فایل querystring تاریخ ویرایش را اضافه نمایید(در صورت نیاز اعلام کنید تا بیشتر توضیح داده شود)
البته روش های دیگری وجود دارند که امکانات مشابهی به ما می دهند.

استفاده از Less یا Sass برای داشتن متغیر در فایل سی اس اس
ساخت چندین تم مختلف با رنگ ها و ظواهر متفاوت
تغییر استایل تگ ها به صورت inline که باعث سنگین شده صفحه می شود
تعریف تابعی در javascript که وظیفه آن تغییر کلاس المان به پارامتر ورودی باشد

Mostafa_
سه شنبه 16 تیر 1394, 03:00 صبح
سلام
شما می توانید با فایل سی اس اس مانند یک فایل متنی رفتار نموده و با streamwriter آن را ایجاد یا ویرایش نمایید(تنها باید پسوند آن را به css تغییر دهید)
در این صورت برای اعمال تغیرات در کاربرانی که قبلا مرورگرشان فایل شما را کش نموده است، باید در هنگام استفاده از link به آخر نام فایل querystring تاریخ ویرایش را اضافه نمایید(در صورت نیاز اعلام کنید تا بیشتر توضیح داده شود)
البته روش های دیگری وجود دارند که امکانات مشابهی به ما می دهند.

استفاده از Less یا Sass برای داشتن متغیر در فایل سی اس اس
ساخت چندین تم مختلف با رنگ ها و ظواهر متفاوت
تغییر استایل تگ ها به صورت inline که باعث سنگین شده صفحه می شود
تعریف تابعی در javascript که وظیفه آن تغییر کلاس المان به پارامتر ورودی باشد



سلام دوست خوبم ،، ممنون از وقتی که گذاشتی
اینطور که من متوجه شدم ،،، میشه تو فایل سی اس اس کانکشن استرینگ نوشت درسته ؟؟
اگه همینطوه جطوری ؟
چون قرار هست سایتم رو طوری طراحی کنم که همچی قابل تغییر باشه ،،، مثل رنگ دکمه ها ،، رنگ فونت ها ،، خود فونت ها ،،
در این صورت باید اینها یه جا ذخیره بشه که خیلی علاقه دارم توی دیتابیس ذخیره بشه ،، دفعه بعدی که کاربر وارد سایت شد و تو پنل کاربری خودش رفت این تغییرات رو ببینه
امیدوارم تونسته باشم منظورم رو درست رسونده باشم :)

بازم تشکر

FastDesign.ir
سه شنبه 16 تیر 1394, 09:20 صبح
سلام
منظور من رو یکم اشتباه فهمیدین.
وقتی گفتم امکان تغییر فایل سی اس اس با streamwriter وجود داره، یعنی اینکه شما به عنوان مدیر سایت، فایل سی اس اس رو می تونین در حال اجرا ویرایش کنین ولی نه سفارشی برای هر کاربر بلکه به طور کلی برای تمامی بازدیدکنندگان سایت.
به هیچ وجه داخل فایل سی اس اس نمیشه کانکشن استرینگ نوشت.
اگر می خوای هر کاربر سایت، ظاهر سفارشی خودش رو داشته باشه، راه حل های اول تا چهارم پست قبلی رو نگاه کن.
راحترین روشی که می تونی برای هر کاربر به صورت سفارشی، تم داشته باشی اینکه مقادیر انتخابی کاربر(رنگ مورد علاقه ...) رو داخل دیتابیس ذخیر کنی بعد در بخش head صفحات با تگ استایل هر ویژگی المان سفارشی را مقدار دهی کنی.

Mostafa_
سه شنبه 16 تیر 1394, 12:44 عصر
سلاممنظور من رو یکم اشتباه فهمیدین.وقتی گفتم امکان تغییر فایل سی اس اس با streamwriter وجود داره، یعنی اینکه شما به عنوان مدیر سایت، فایل سی اس اس رو می تونین در حال اجرا ویرایش کنین ولی نه سفارشی برای هر کاربر بلکه به طور کلی برای تمامی بازدیدکنندگان سایت.به هیچ وجه داخل فایل سی اس اس نمیشه کانکشن استرینگ نوشت.اگر می خوای هر کاربر سایت، ظاهر سفارشی خودش رو داشته باشه، راه حل های اول تا چهارم پست قبلی رو نگاه کن.راحترین روشی که می تونی برای هر کاربر به صورت سفارشی، تم داشته باشی اینکه مقادیر انتخابی کاربر(رنگ مورد علاقه ...) رو داخل دیتابیس ذخیر کنی بعد در بخش head صفحات با تگ استایل هر ویژگی المان سفارشی را مقدار دهی کنی.سلام مجددبله شما درست گفتین ،،، دوباره که پست شما رو خوندم متوجه شدم :)درباره مورد اخر میشه توضیح بدین؟؟راستی من درباره less تحقیق کردم اطلاعات درست و حسابی تو نت نیستمن همونطور که شما هم اشاره کردین میخوام مقدارها حتما تو دیتابیس ذخیره بشهبا less میشه این کار رو کرداگه نمیشه باید چطور این کار رو انجام بدمبازم ممنون

FastDesign.ir
سه شنبه 16 تیر 1394, 13:26 عصر
سلام
یک مثال براتون نوشتم.
این بخش برای دریافت مقادیر از پایگاه داده و ذخیره در یک متغییر از نوع دیکشنری است.


Public UserTheme As Dictionary(Of String, String) = New Dictionary(Of String, String)
Sub GetUserColor()
'مقادیر مربوط به کاربر را از پایگاه داده استخراج کرده و در متغییر ذخیره کنید
UserTheme.Add("background-color", "ff0000")
UserTheme.Add("button-color", "00ff00")
UserTheme.Add("text-color", "0000ff")
End Sub


Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
GetUserColor()
End Sub

این بخش هم برای مقدار دهی مشخصه ها در بخش هدر صفحه می باشد.


<head runat="server"> <style type="text/css">
body{background:#<%=UserTheme.Item("background-color")%>}
p{color:#<%=UserTheme.Item("text-color")%>}
input[type=submit]{background:#<%=UserTheme.Item("button-color")%>}
</style>
</head>

Mostafa_
سه شنبه 16 تیر 1394, 17:28 عصر
راستش خودمم به همین موضوع داشتم فکر میکردم اما چیزی نگفتم ببینم شما هم همین رو میگین یا نه
که خداروشکر گفتین
البته برامن فرق داره ببینین ،،، اگه این مورد اشکال نداره همین رو استفاده کنم
من کل استایل رو توی فایل Html مینویسم به این صورت که کانشکن رو تعریف میکنم ،،، از قبل هم یه فیلد برای رنگ بکگراند مشخص کردم و فرضا توش ابی رو قرار دادم (کد رنگ رو)
حالا میام اینطور مینویسم

<div style="background-color:"+bgcolor+";">


بعد bgcolor یه مقتغیر هست که مقدارش رو از دیتابیس میخونه

FastDesign.ir
سه شنبه 16 تیر 1394, 19:29 عصر
حالت کلی قضیه همین طوریه. اما اگر بخواین از متغییر در قالب HTML استفاده کنین باید به روشی که در پست قبلی نوشته شده باشه.

<%=Variable%>
برای راحتی کار بهتره از کلاس ها استفاده کنید.

Mostafa_
سه شنبه 16 تیر 1394, 19:47 عصر
حالت کلی قضیه همین طوریه. اما اگر بخواین از متغییر در قالب HTML استفاده کنین باید به روشی که در پست قبلی نوشته شده باشه.

<%=Variable%>
برای راحتی کار بهتره از کلاس ها استفاده کنید.

بله درسته حرفتون
با سی شارپ برنامه نویسی میکنم و دقیقا باید به همین روش استفده کنم
پس مشکلی نداره دگ درسته ؟
اخرش هم کدی که قرار هست به سمت کلاینت بره رو فشرده میکنم تا زودتر لود بشه

FastDesign.ir
سه شنبه 16 تیر 1394, 20:14 عصر
نه مشکلی وجود نداره.

xsbehx
سه شنبه 16 تیر 1394, 22:24 عصر
اخرش هم کدی که قرار هست به سمت کلاینت بره رو فشرده میکنم تا زودتر لود بشه

سلام
اینکارو چطوری انجام می دید؟

Mostafa_
چهارشنبه 17 تیر 1394, 01:00 صبح
نه مشکلی وجود نداره.



باش بسیار ممنون

FastDesign.ir
چهارشنبه 17 تیر 1394, 10:13 صبح
سلام

یکی از روش های فشرده سازی صفحه، Gzip هست. برای اطلاعات بیشتر به آدرس زیر مراجعه کنید.

http://www.dotnetperls.com/compression-aspnet