dcsimg
www.webdeveloper.com
Results 1 to 8 of 8

Thread: Give priority to a CSS file

  1. #1
    Join Date
    Jun 2017
    Location
    IT
    Posts
    36

    Give priority to a CSS file

    Dear users,

    I have a HTML page like this:

    HTML Code:
    <link rel="stylesheet" type="text/css" href="styles.css">
    <link rel="stylesheet" type="text/css" href="themes.css">
    Now I want all the statements written in themes.css must overwrite the statements in styles.css

    I don't want to use !important every statement in themes.css

    Is there a fast way?

    Thanks

  2. #2
    Join Date
    Mar 2007
    Location
    localhost
    Posts
    5,517
    Then swap them around... pages load in the order in which the statements are encountered and whats more, if you already have a style sheet set a page up, what the point of over writing the styles? Just load up the styles you want and no messing around wasting peoples data allowances and bandwidth.
    --> JavaScript Frameworks like JQuery, Angular, Node <--
    ... and please remember to wrap code with forum BBCode tags:-

    [CODE]...[/CODE] [HTML]...[/HTML] [PHP]...[/PHP]

    If you can't think outside the box, you will be trapped forever with no escape...

  3. #3
    Join Date
    Jun 2017
    Location
    IT
    Posts
    36
    So, in the example I have written themes.css, but it is a dynamic CSS generated by php and mysql, so it will be "user.php?what=his_style".

    Then there is a general CSS for all users, but there is also a specific CSS for the user (not all users), and I need to overwrite the general styles with the user's style.

    So, we return from the begin.

    How can I do?

  4. #4
    Join Date
    Mar 2007
    Location
    localhost
    Posts
    5,517
    If you have a user account who has been allowed their own page theme, then you would store that information in a database as a CSS string that you write in with PHP to the page rather than wasting time loading a theme to be written over immediately, I assume the person has to login to their account, thats how you would then serve up their theme.
    --> JavaScript Frameworks like JQuery, Angular, Node <--
    ... and please remember to wrap code with forum BBCode tags:-

    [CODE]...[/CODE] [HTML]...[/HTML] [PHP]...[/PHP]

    If you can't think outside the box, you will be trapped forever with no escape...

  5. #5
    Join Date
    Jun 2017
    Location
    IT
    Posts
    36
    I didn't understand very well what you written, but I want to know if I can do what I asked in first post.

    Or if there is a similar fix, I don't want to edit PHP files.


    Thanks

  6. #6
    Join Date
    Dec 2012
    Posts
    1,578
    There are several rules for the priority of CSS properties. Most important:
    1. The last assignment will overwrite all previous ones, i. e. assignments in your second file will overwrite those in the first file.
    However
    2. Assignments on a selector being more specific will override assignments on a selector being less specific, i. e.
    div.theclass{background-color: red} will override div{background-color:white}.
    If div.theclass{background-color:white} is defined in your first file it will have priority and will not be overridden by div{background-color:white} in the second file.

  7. #7
    Join Date
    Jun 2017
    Location
    IT
    Posts
    36
    Yes, I know.

    I read this document: https://www.w3.org/wiki/CSS/Training...el_of_selector

    Unfortunately, in the second file (themes.css) I defined the selectors in order to have a priority level lower than the first file (styles.css), and I can't change them for different reasons.

    So when I see the window inspector, I can see the "themes.css" rules overwritten by "styles.css" rules.

    This is the problem.

    I want the "themes.css" will overwrite "styles.css" without writing !important at all the statements in themes.css


    Is there a solution?

    Thanks

  8. #8
    Join Date
    Dec 2012
    Posts
    1,578
    I don't know any solution for this problem. The only solution I know about is deactivating the complete styles.css file. However this would require defining all rules completely in the second file again instead of overwriting a few.

Thread Information

Users Browsing this Thread

There are currently 1 users browsing this thread. (0 members and 1 guests)

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  
HTML5 Development Center