اشتراکها
نظرات مطالب
مروری بر قابلیت جدید ASP.NET FriendlyUrls
بله من اگر آدرس Css در پروژه به صورت زیر باشد
باز برای این pageload صفحه را اجرا میکند
<link href="css/StyleSheet.css" rel="stylesheet" type="text/css" />
نظرات مطالب
JQuery Plugins #1
$(this).css( { text-decoration : underline })
فکر کنم منظور ایشون («اونطوری» که نوشته) وجود dash در نام متغیر بوده.
نظرات مطالب
Url Routing در ASP.Net WebForms
در حالت کلی در وب فرمها، برای مسیردهی سازگار با Routing باید از ResolveUrl استفاده کنید.
برای اسکریپتها:
برای شیوهنامهها:
متد ResolveUrl به صورت خودکار مسیر صحیح را تولید میکند.
اما ... این روش کار کردن صحیح نیست. چون به زودی به تعداد زیادی فایل اسکریپت و CSS لینک داده شده در صفحه میرسید. برای یکی کردن آنها یا از ScriptManager استفاده کنید (برای اسکریپتها) و یا از روشهای bundling & minification که با فایلهای CSS و JS سازگار است. مسیریابیها را هم به صورت خودکار تصحیح میکند.
برای اسکریپتها:
<script type='text/javascript' src='<%= ResolveUrl("~/Scripts/test.js") %>'></script>
<link rel="stylesheet" href="<%= ResolveUrl("~/myStylysheet.css")%>" type="text/css" />
اما ... این روش کار کردن صحیح نیست. چون به زودی به تعداد زیادی فایل اسکریپت و CSS لینک داده شده در صفحه میرسید. برای یکی کردن آنها یا از ScriptManager استفاده کنید (برای اسکریپتها) و یا از روشهای bundling & minification که با فایلهای CSS و JS سازگار است. مسیریابیها را هم به صورت خودکار تصحیح میکند.
نظرات مطالب
CSS پویا در ASP.NET MVC
این روش را میشود کمی بهبود داد؛ برای اینکه بشود داخل فایل CSS با کدهای Razor هم کار کرد (یعنی چیزی شبیه به LESS اما پیاده سازی شده با Razor و تفسیر شده توسط موتور آن؛ مانند یک View یا Partial View معمولی و کامل. حتی میشود داخل آن if و else یا حلقه نوشت):
با این محتوای Views/Home/_CSS.cshtml:
public class CSS { public string Color { set; get; } }
public ActionResult GetDynamicStyle() { var color = "White"; if (DateTime.Now.Hour > 18 || DateTime.Now.Hour < 8) { color = "Black"; } this.Response.ContentType = "text/css"; return PartialView(viewName: "~/Views/Home/_CSS.cshtml", model: new CSS { Color = color }); }
@model DynamicMvcCSS.Controllers.CSS .foo { color: @Model.Color; }
همانطور که در پست قبلی اشاره کردم نسخه جدید MVC با تغییرات جهت بهبود کاربری همراه بوده است.
در این پست قصد دارم شما رو با ویژگی جدید Bundling and Minification بر روی فایلهای Css و JavaScript آشنا کنم.اگر یک پروژه جدید به وسیله MVC 4 ابجاد کنید شاهد تغییراتی بر روی فایلهای _Layout.cshtml and Global.asax.cs خواهید بود.این تغییر شامل اضافه شدن System.Web.Optimization and BundleTable.Bundles به
Layout.cshtml است.
<link href="@System.Web.Optimization.BundleTable.Bundles.ResolveBundleUrl("~/Content/css")"rel="stylesheet" type="text/css" /> <link href="@System.Web.Optimization.BundleTable. Bundles.ResolveBundleUrl("~/Content/themes/base/css")" rel="stylesheet" type="text/css" /> <script src="@System.Web.Optimization.BundleTable.Bundles.ResolveBundleUrl("~/Scripts/js")"></script>
که این Reference ها به عنوان Html Helper ساده هستند.
اگر به کدهای HTML مرورگر خود نگاه کنید شاهد کدهای زیر خواهید بود.
<link href="/Content/css?v=ji3nO1pdg6VLv3CVUWntxgZNf1z" rel="stylesheet" type="text/css" /> <link href="/Content/themes/base/css?v=UM624qf1uFt8dYti" rel="stylesheet" type="text/css" /> <script src="/Scripts/js?v=4h5lPNUsLiFoa0vqrItjS2Jp"></script>
که این به معنی فشرده شدن و همچنین باعث میشود اطلاعات ارسالی از IIS Web Server کمتر باشد.
برای استفاده از این ویژگی میبایست در Global.asax.cs در قسمت Application Startup متد زیر را اضافه کنیم.
BundleTable.Bundles.RegisterTemplateBundles();
برای ساختن Bundle سفارشی به صورت extension method به صورت زیر عمل میکنیم.
public static void EnableBootstrapBundle(this BundleCollection bundles) { var bootstrapCss = new Bundle("~/bootstrap/css", new CssMinify()); bootstrapCss.AddFile("~/css/bootstrap.css"); bootstrapCss.AddFile("~/css/bootstrap-responsive.css"); bootstrapCss.AddFile("~/css/application.css"); bootstrapCss.AddFile("~/css/prettify.css"); bundles.Add(bootstrapCss); var bootstrapJs = new Bundle("~/bootstrap/js", new JsMinify()); bootstrapJs.AddFile("~/js/jquery-1.7.1.js"); bootstrapJs.AddFile("~/js/bootstrap.js"); bootstrapJs.AddFile("~/js/prettify.js"); bundles.Add(bootstrapJs); }
در مثال بالا CssMinify وJsMinify برای مشخص شدن نوع فشرده سازی ما استفاده شده است.
برای استفاده از این ویژگی میبایست در Global.asax.cs در قسمت Application Startup متد زیر را اضافه کنیم.
BundleTable.Bundles.EnableBootstrapBundle();
و در فایل Layout.cshtm همانند مثال قبلی کد زیر را اضافه میکنیم.
<link href="@System.Web.Optimization.BundleTable.Bundles.ResolveBundleUrl("~/bootstrap/css")" rel="stylesheet"> <script src="@System.Web.Optimization.BundleTable.Bundles.ResolveBundleUrl("~/bootstrap/js")"></script>
و اگر دوباره به کد تولیدی در مرورگر نگاهی بیاندازیم:
<link href="/bootstrap/css?v=uBlJsuIAGAF93nUTTez8" rel="stylesheet"> <script src="/bootstrap/js?v=O6HaHC8QqtB"></script>
.میتونه تنها ایرادش باشه CDN عدم پشتیبانی از
.البت شاید من نتونستم راهی براش پیدا کنم
کار اضافه ای قرار نیست انجام دهیم همه اینها به صورت توکار اعمال میشوند.
به طور خلاصه میشه گفت ویژگی بالا به بهبود عملکرد برنامه شما کمک زیادی میکنه.
- در کنفرانس techEd 2014 در جلسه «Entity Framework: Building Applications with Entity Framework 6» کار با Full text search در EF 6، جزو مثالهای مطرح شدهاست.
- روش دوم هم در اینجا «Full text search in Microsoft's Entity Framework».
- روش سوم با استفاده از IDbCommandInterceptor در اینجا «Microsoft's Full Text Search in Entity Framework 6»
- روش دوم هم در اینجا «Full text search in Microsoft's Entity Framework».
- روش سوم با استفاده از IDbCommandInterceptor در اینجا «Microsoft's Full Text Search in Entity Framework 6»
51- :first-child
تگی را انتخاب میکند که اولین فرزند والد خود باشد.
در مثال فوق Text 1، Text 6و Text 9 به رنگ قرمز نمایش مییابند.
<style> div.container :first-child { color: red; } </style> <div class="container"> <h1>Text 1</h1> <span>Text 2</span> <p>Text 3</p> <div>Text 4</div> <div>Text 5</div> <div> <h1>Text 6</h1> <span>Text 7</span> <p>Text 8</p> <p> <span>Text 9</span> </p> <div>Text 10</div> <p>Text 11</p> </div> <h1>Text 12</h1> <div>Text 13</div> <span>Text 14</span> <div>Text 15</div> </div>
پشتیبانی در مرورگرها:
|
|
|
|
| Selector | نسخه CSS |
3.1 | 9.6 | 7.0 | 3.0 | 4.0 | :first-child | 2 |
52- :last-child
تگی را انتخاب میکند که آخرین فرزند والد خود باشد.
در مثال فوق Text 15، Text 11و Text 9 به رنگ قرمز نمایش مییابند.
<style> div.container :last-child { color: red; } </style> <div class="container"> <h1>Text 1</h1> <span>Text 2</span> <p>Text 3</p> <div>Text 4</div> <div>Text 5</div> <div> <h1>Text 6</h1> <span>Text 7</span> <p>Text 8</p> <p> <span>Text 9</span> </p> <div>Text 10</div> <p>Text 11</p> </div> <h1>Text 12</h1> <div>Text 13</div> <span>Text 14</span> <div>Text 15</div> </div>
پشتیبانی در مرورگرها:
|
|
|
|
| Selector | نسخه CSS |
3.2 | 9.6 | 9.0 | 3.5 | 4.0 | :last-child | 3 |
53- :only-child
تگی را انتخاب میکند که تنها فرزند والد خود باشد.
در مثال فوق Text 9 به رنگ قرمز نمایش مییابد.
<style> div.container :only-child { color: red; } </style> <div class="container"> <h1>Text 1</h1> <span>Text 2</span> <p>Text 3</p> <div>Text 4</div> <div>Text 5</div> <div> <h1>Text 6</h1> <span>Text 7</span> <p>Text 8</p> <p> <span>Text 9</span> </p> <div>Text 10</div> <p>Text 11</p> </div> <h1>Text 12</h1> <div>Text 13</div> <span>Text 14</span> <div>Text 15</div> </div>
پشتیبانی در مرورگرها:
|
|
|
|
| Selector | نسخه CSS |
3.2 | 9.6 | 9.0 | 3.5 | 4.0 | :only-child | 3 |
54- :nth-child(n)
تگی را انتخاب میکند که nامین فرزند والد خود باشد. به جای n میتوان از مقادیر odd (فرزندان فرد)، even (فرزندان زوج) و an+b استفاده نمود.
در مثال فوق Text 2و Text 7 به رنگ قرمز نمایش مییابند.
<style> div.container :nth-child(2) { color: red; } </style> <div class="container"> <h1>Text 1</h1> <span>Text 2</span> <p>Text 3</p> <div>Text 4</div> <div>Text 5</div> <div> <h1>Text 6</h1> <span>Text 7</span> <p>Text 8</p> <p> <span>Text 9</span> </p> <div>Text 10</div> <p>Text 11</p> </div> <h1>Text 12</h1> <div>Text 13</div> <span>Text 14</span> <div>Text 15</div> </div>
پشتیبانی در مرورگرها:
|
|
|
|
| Selector | نسخه CSS |
3.2 | 9.6 | 9.0 | 3.5 | 4.0 | :nth-child(n) | 3 |
55- :nth-last-child(n)
تگی را انتخاب میکند که nامین فرزند والد خود از آخر باشد. به جای n میتوان از مقادیر odd (فرزندان فرد)، even (فرزندان زوج) و an+b استفاده نمود.
در مثال فوق Text 14و Text 10 به رنگ قرمز نمایش مییابند.
<style> div.container :nth-last-child(2) { color: red; } </style> <div class="container"> <h1>Text 1</h1> <span>Text 2</span> <p>Text 3</p> <div>Text 4</div> <div>Text 5</div> <div> <h1>Text 6</h1> <span>Text 7</span> <p>Text 8</p> <p> <span>Text 9</span> </p> <div>Text 10</div> <p>Text 11</p> </div> <h1>Text 12</h1> <div>Text 13</div> <span>Text 14</span> <div>Text 15</div> </div>
پشتیبانی در مرورگرها:
|
|
|
|
| Selector | نسخه CSS |
3.2 | 9.6 | 9.0 | 3.5 | 4.0 | :nth-last-child(n) | 3 |
56- :first-of-type
تگی را انتخاب میکند که اولین تگ در بین هم نوعان خودش و در یک والد باشد.
در مثال فوق Text 1، Text 2، Text 3، Text 4، Text 6، Text 7، Text 8، Text 9و Text 10 به رنگ قرمز نمایش مییابند.
<style> div.container :first-of-type { color: red; } </style> <div class="container"> <h1>Text 1</h1> <span>Text 2</span> <p>Text 3</p> <div>Text 4</div> <div>Text 5</div> <div> <h1>Text 6</h1> <span>Text 7</span> <p>Text 8</p> <p> <span>Text 9</span> </p> <div>Text 10</div> <p>Text 11</p> </div> <h1>Text 12</h1> <div>Text 13</div> <span>Text 14</span> <div>Text 15</div> </div>
پشتیبانی در مرورگرها:
|
|
|
|
| Selector | نسخه CSS |
3.2 | 9.6 | 9.0 | 3.5 | 4.0 | :first-of-type | 3 |
57- :last-of-type
تگی را انتخاب میکند که آخرین تگ در بین هم نوعان خودش و در یک والد باشد.
در مثال فوق Text 15، Text 14، Text 12، Text 11، Text 10، Text 9، Text 7، Text 6و Text 3 به رنگ قرمز نمایش مییابند.
<style> div.container :last-of-type { color: red; } </style> <div class="container"> <h1>Text 1</h1> <span>Text 2</span> <p>Text 3</p> <div>Text 4</div> <div>Text 5</div> <div> <h1>Text 6</h1> <span>Text 7</span> <p>Text 8</p> <p> <span>Text 9</span> </p> <div>Text 10</div> <p>Text 11</p> </div> <h1>Text 12</h1> <div>Text 13</div> <span>Text 14</span> <div>Text 15</div> </div>
پشتیبانی در مرورگرها:
|
|
|
|
| Selector | نسخه CSS |
3.2 | 9.6 | 9.0 | 3.5 | 4.0 | :last-of-type | 3 |
58- :only-of-type
تگی را انتخاب میکند که تنها تگ در بین هم نوعان خودش و در یک والد باشد.
در مثال فوق Text 3، Text 6، Text 7، Text 9 و Text 10 به رنگ قرمز نمایش مییابند.
<style> div.container :only-of-type { color: red; } </style> <div class="container"> <h1>Text 1</h1> <span>Text 2</span> <p>Text 3</p> <div>Text 4</div> <div>Text 5</div> <div> <h1>Text 6</h1> <span>Text 7</span> <p>Text 8</p> <p> <span>Text 9</span> </p> <div>Text 10</div> <p>Text 11</p> </div> <h1>Text 12</h1> <div>Text 13</div> <span>Text 14</span> <div>Text 15</div> </div>
پشتیبانی در مرورگرها:
|
|
|
|
| Selector | نسخه CSS |
3.2 | 9.6 | 9.0 | 3.5 | 4.0 | :only-of-type | 3 |
59- :nth-of-type(n)
تگی را انتخاب میکند که nامین تگ در بین هم نوعان خودش و در یک والد باشد. به جای n میتوان از مقادیر odd (فرزندان فرد)، even (فرزندان زوج) و an+b استفاده نمود.
در مثال فوق Text 5، Text 9، Text 12 و Text 14 به رنگ قرمز نمایش مییابند.
<style> div.container :nth-of-type(2) { color: red; } </style> <div class="container"> <h1>Text 1</h1> <span>Text 2</span> <p>Text 3</p> <div>Text 4</div> <div>Text 5</div> <div> <h1>Text 6</h1> <span>Text 7</span> <p>Text 8</p> <p> <span>Text 9</span> </p> <div>Text 10</div> <p>Text 11</p> </div> <h1>Text 12</h1> <div>Text 13</div> <span>Text 14</span> <div>Text 15</div> </div>
پشتیبانی در مرورگرها:
|
|
|
|
| Selector | نسخه CSS |
3.2 | 9.6 | 9.0 | 3.5 | 4.0 | :nth-of-type(n) | 3 |
60- nth-last-of-type(n)
تگی را انتخاب میکند که nامین تگ از آخر در بین هم نوعان خودش و در یک والد باشد. به جای n میتوان از مقادیر odd (فرزندان فرد)، even (فرزندان زوج) و an+b استفاده نمود.
در مثال فوق Text 1، Text 2، Text 9 و Text 13 به رنگ قرمز نمایش مییابند.
<style> div.container :nth-last-of-type(2) { color: red; } </style> <div class="container"> <h1>Text 1</h1> <span>Text 2</span> <p>Text 3</p> <div>Text 4</div> <div>Text 5</div> <div> <h1>Text 6</h1> <span>Text 7</span> <p>Text 8</p> <p> <span>Text 9</span> </p> <div>Text 10</div> <p>Text 11</p> </div> <h1>Text 12</h1> <div>Text 13</div> <span>Text 14</span> <div>Text 15</div> </div>
پشتیبانی در مرورگرها:
|
|
|
|
| Selector | نسخه CSS |
3.2 | 9.6 | 9.0 | 3.5 | 4.0 | :nth-last-of-type(n) | 3 |
فقط با استفاده از CSS هم میشه
input[type=text]:required + span::after { content: "*"; color: red; font-size: large; }
نظرات مطالب
JQuery Plugins #1
مرسی عالی بود .استفاده کردم.فقط زمانی که سی اس اس میدی نباید اونطوری نوشته بشه
$(this).css( "text-decoration" ,"none" )