2014年3月31日 星期一

CSS學習筆記: 位置

CSS positioning

參考: http://www.w3schools.com/css/css_positioning.asp

static: 預設值。

fixed: 可指定相對於瀏覽器的座標,隨瀏覽器大小改變,此元素會從其他元素獨立出來不受影響,也就是不會跟著捲動。

relative: 此元素仍然屬於正常排列中的一份子,可指定相對於自己原本應該佔有之處的位移。注意: 原佔有處依然會佔有,也就是說位移之後,自己原本的位置會留白,別的元素不會進來。

absolute: 可指定相對於第一個父元素的位移。父元素的position屬性必須是除了static以外的屬性。


overflow屬性

visible: 此為預設值。內容若超過方塊大小,則會溢出,顯示到方塊外面。

hidden: 超出範圍的內容就看不到,也不能捲動。

scroll: 以捲動軸瀏覽超出範圍的內容。



2014年3月27日 星期四

在主版頁面中引用javascript 相對路徑的問題

Relative path issue when importing javascript in master pages

在我的某個主版頁面引入jQuery檔案時,莫名其妙的無法載入。
有以下這段話:
Master pages inherit the path of the page that includes them, so the relative path to the jquery .js file is different, for different pages.
解釋 : 主版頁的真實出現的地方其實是使用主版頁的該頁面。概念應該是內容頁「引用」 了主版頁面,而不是「裝進」了主版頁。換言之,實際上是以內容頁為主體。(用中斷點實驗可以得知,是先載入Page然後才載入Master)

做了實驗,修改相對路徑之後就可以載入了,似乎就是這麼回事。

實際案例

資料夾結構如下,有中括號的代表資料夾
  • [ Master ]
    • Admin.master
  • [ Pages ]
    • [ Admin_pages ]
      • abc.aspx
  • [ Scripts ]
    • jquery-2.1.0.js

假設abc.aspx使用Admin.master作為他的主版頁面。我現在要在Admin.master裡面引入jquery,直覺是這樣 <script   src="../Scripts/jquery-2.1.0.js"   type="text/javascript"></script>

因為[Scripts]資料夾是相對於Admin.master的上一層。但是開啟abc.aspx時就會錯誤,因為[Scripts]資料夾是相對於abc.aspx的上二層,若要正確必須要改成這樣

<script   src="../../Scripts/jquery-2.1.0.js"   type="text/javascript"></script>


如果用下面這種方法似乎就一勞永逸。
<script  src='<%= ResolveUrl("~/Scripts/jquery-2.1.0.js")%>'   type="text/javascript"></script>

不過這行放在<head></head>裡面又會有別的錯,(無法修改 Controls 集合,因為控制項包含程式碼區塊... ...)  目前還懶得研究。