色婷婷狠狠18禁久久YY,CHINESE性内射高清国产,国产女人18毛片水真多1,国产AV在线观看

如何允許用戶改變css并加載他們自己的樣式

錢多多2年前8瀏覽0評論

目前我在ASP.NET MVC項目,這將有2個或更多的主題,css主題,所以我問什么是最好的wqy處理這樣的請求。 我可以允許用戶在css文件中寫東西嗎?或者我可以在數據庫中存儲一些css值,并在用戶登錄后用jquery加載到css中嗎? 我只是在尋找最好的方法和方式來做好,順利。

如果你有預定義的主題,用戶可以為他們將來的登錄選擇,你可以在你的數據庫中創建主題表,并根據用戶存儲各自的主題id。如果用戶沒有選擇任何主題,你將有默認的主題。

并在你的服務器上分別創建主題的css文件,每個主題會有不同的文件。

但是,如果用戶為他/她將來的登錄選擇了主題,請在登錄時驗證用戶身份后,將其保存在您的數據庫中。將值傳遞給表單上的任何隱藏字段,并使用隱藏字段中的id值更改樣式表,并使用javascript在每個網頁上加載相同的文件。

在您的評論之后:

如果想讓用戶控制創建自己的風格,我認為基本上是顏色和字體的變化,你可以用相同的類名創建不同的css文件,并在登錄后加載它們。根據數據庫中的用戶id,這將有助于您更快地加載頁面,減少數據庫連接。

您可以使用以下命令獲取用戶ID

if (!Page.User.Identity.IsAuthenticated)
{
  MembershipUser member = Membership.GetUser();
  if (member != null)
      {
         ProfileCommon opC = Profile.GetProfile(Email.Text);
         hdnTheme.Value =  opC.ThemeID;
         hdnUserID.Value =  member.ProviderUserKey.ToString(); 

      }

}

在你的ASPX代碼的加載頁上

$(document).ready(function (){
var themeid = $("#hdnTheme.ClientID").val()
var UserID= $("#hdnUserID.ClientID").val()

if (themeid == 1)// for user specific theme 
 <link href="includes/css/"+ UserID +".css" type="text/css" rel="stylesheet" />
else if (themeid == 2) // for the theme which you have created and already the file exists 
  <link href="includes/css/2.css" type="text/css" rel="stylesheet" />
else 
    <link href="includes/css/default.css" type="text/css" rel="stylesheet" />

});

通過屬性contenteditable = & quottrue & quot

<div id="oEditableCssForEveryone" contenteditable="true">
  <style contenteditable="true">
    /* USER, please try input, type your css code text here */

    #oEditableCssForEveryone {
      margin: 12px 0;
      font-family: Consolas, Monaco, monospace;
    }

    #oEditableCssForEveryone style {
      display: block;
      white-space: pre;
    }
            
    #oEditableCssForEveryone[contenteditable="true"] {
      padding: 90px;
      overflow-x: auto;
      outline: 3px dashed #cccccc;
    }
            
    #oEditableCssForEveryone[contenteditable="true"]:hover{
      cursor: text;
      background: #e4f3f9;
      outline: 3px dashed #2B8BAD;
    }
  </style>
</div>

和保存按鈕:

<script type="text/javascript">
  $('body').on('click', '.oSaveButton', function() { 
    fetch(window.location.origin + "/ajax/ajaxSaveUserCssPlease.php", {
      method:"POST",
      headers: {
        'Content-Type': 'application/json;charset=utf-8'
      },
      body: JSON.stringify(document.getElementById("oEditableCssForEveryone").innerHTML)
    });
    return false;
  }).then(..);
</script>

可能附加設置顯示:塊

<style style="display:block;" contenteditable="true" >

您應該將CSS值存儲在數據庫中,然后在用戶登錄時加載它。那是最簡單的方法。

然而,當你的網站有很多日志用戶時,會大大降低網站的速度。

更高級的方法是,當用戶填寫表單并單擊save時,php腳本可以生成并保存一個CSS文件(可以稱為user_ id.css)。我不記得為什么function會這樣做,但谷歌或這個網站是你的朋友。然后當用戶登錄時,CSS文件的位置將被保存在數據庫中,并在head標簽中被調用