如何使用外部CSS样式表的HTML和PHP

如何使用外部CSS样式表的HTML和PHP

问题描述:

I'm trying to center the h3 element and "profile_content" div-id in the "profile" class using external style sheets. I know how to do it with just an html and css file but I get stumped when php gets involved! Please could you help me with the syntax as well so I know what to do in the future.

php code

<?php
    session_start();

    // Connect to the database with '$mysqli' as the connection variable name
    $mysqli = new mysqli ("localhost", "root", "", "folder");

    //Check connection
    // '$mysqli->connect_errno' = Returns the error code from last connect call
    // '->' is used to access an object method or property
    if ($mysqli -> connect_errno) {
        die('Connect Error: ' . $mysqli -> connect_errno);
    }
?>

<html>
    <header>
        <link rel = "stylesheet" type = "text/css" href = "mystyle_friends.css">
    </header>
    <div class = "heading">
    <h1>FRIENDS PAGE</h1>
    </div>


    <p>Welcome  <?php  echo $_SESSION['username'] ?></p>



    <div class = "profile_content">

        <div id = profile_heading>
        <h3>Profiles</h3>
        </div>

        <?php 
            //Perform query against database. Requires 2 parameters = (connection, query)
            $result = mysqli_query($mysqli, "SELECT * FROM users");
            while ($row = mysqli_fetch_array($result)) {
                echo "<div id = 'profile_data'>";
                echo "<p> First Name: " .$row ["user_f_name"] .  "</p>";//$user_first = $row["user_f_name"];
                echo "<p> Surname: " .$row ["user_surname"] .  "</p>";//$user_sur =  $row["user_surname"];
                echo "<p> Score: " .$row ["user_score"] .  "</p>";//$user_score = $row["user_score"];
                echo '<img src="data:user_images/jpeg;base64,' . base64_encode( $row['user_image'] ) . '" />';
                echo "</div>";
            }
        ?>

    </div>

css external style sheet

.heading {
    text-align: center;
}

.profile {
    border-style: solid;
    border-width: 5px;

}

h3. profile {
    text-align: center;
}

#profile_content. profile {
    text-align: center;
}

Holly Macaroni!

First correct your HTML:

<?php
    session_start();

    // Connect to the database with '$mysqli' as the connection variable name
    $mysqli = new mysqli ("localhost", "root", "", "folder");

    //Check connection
    // '$mysqli->connect_errno' = Returns the error code from last connect call
    // '->' is used to access an object method or property
    if ($mysqli -> connect_errno) {
        die('Connect Error: ' . $mysqli -> connect_errno);
    }
?>

<html>
    <head>
        <link rel="stylesheet" type="text/css" href="mystyle_friends.css">
    </head>
    <body>
        <div class="heading">
            <h1>FRIENDS PAGE</h1>
        </div>

        <p>Welcome <?php echo $_SESSION['username'] ?></p>

        <div class="profile_content">
            <div id="profile_heading">
                <h3>Profiles</h3>
            </div>

            <?php 
                //Perform query against database. Requires 2 parameters = (connection, query)
                $result = mysqli_query($mysqli, "SELECT * FROM users");
                while ($row = mysqli_fetch_array($result)) {
                    echo "<div id=\"profile_data\">";
                    echo "<p>First Name: " . $row["user_f_name"] . "</p>";       //$user_first = $row["user_f_name"];
                    echo "<p>Surname: " . $row["user_surname"] . "</p>";       //$user_sur =  $row["user_surname"];
                    echo "<p>Score: " . $row["user_score"] . "</p>";           //$user_score = $row["user_score"];
                    echo "<img src=\"data:user_images/jpeg;base64," . base64_encode( $row['user_image'] ) . "\" />";
                    echo "</div>";
                }
            ?>
        </div>
    </body>
</html>

After that you have to fix your CSS-Selectors:

// Selectors:
// element {} Elements can appear as many times as you need them per Document
// .class {} Classes can appear as many times as you need them per Document
// #id {} IDs can appear just once per Document

.heading {
    text-align: center;
}

#profile_heading h3 {
    text-align: center
}

.profile_data {
    text-align: center;
}

// There is no Element with the Class "profile"
/*
.profile {
    border-style: solid;
    border-width: 5px;
}
*/

// There is no Element inside of the h3 with the Class "profile"
/*
h3. profile {
    text-align: center;
}
*/

// There is no Element with ID "profile_content"
/*
#profile_content .profile {
    text-align: center;
}
*/

But first: https://www.google.ch/?gfe_rd=cr&ei=6eISWYObOqLC8gfkzp3wBg#q=html+css+for+dummies

First, tidy your HTML:

 <div class="profile_content">
    <div id="profile_heading">
        <h3>Profiles</h3>
    </div>
    ...Your SQL Stuff...
</div>

Now to center your h3, you'll need:

.profile_content h3
{
    text-align:center;
}

Your current CSS is incorrect in a few ways: you have "h3. profile" which makes no sense (a h3 dot? there's also no element 'profile'). You also reference a '#profile_content' which doesn't exist.

    <!DOCTYPE html>
<html>

<head>
    <title><?php echo $title; ?></title>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <link rel="stylesheet" href="<?php echo base_url();?>/css/bootstrap.min.css">

Add the above code in the top of php file and save the file as .php instead of .html