根据计算定义css元素

I would like to know how I can define CSS element dimensions before they are rendered eg. not using offset and jQuery

Can I echo php into where the width/height or position values are? eg.

<?php 
$width = 290px; 
$altwidth = 290;
?>
<style>
    .widget {
        width: <?php echo $width; ?>;
    }
    .altwidget {
        width: <?php echo $altwidth; ?>px; 
    }

Would any of these work, is it completely wrong?

Similarly how would I apply JavaScript dimensions using a variable?

$(document).ready(function(){
      $('.widget').css('width', <?php echo $width; ?>);
      $('.altwidget').css('width', <?php echo $altwidth; ?>);
});

Your code will also works if it is written in php file.

Yes it will work, but you will have to make 290px a string for $width ( e.g. $width = "290px";), or better yet go with the $altwidth way and leave the px part out of the variable.

See below for how to dynamically set dimensions from JavaScript once the page has loaded. I have added some CSS for the example.

<html>
<head>
    <?php
    $width    = "290px"; // Quotes added
    $altwidth = 290;
    ?>
    <style>
        .widget {
            width:      <?php echo $width; ?>;
            height:     100px;
            color:      white;
            background: green;
            cursor:     pointer;
        }

        .altwidget {
            width:      <?php echo $altwidth; ?>px;
            height:     100px;
            color:      white;
            background: red;
            cursor:     pointer;
        }
    </style>

    <script type="text/javascript">
        var newWidgetWidth    = '200';
        var newAltWidgetWidth = '400';
    </script>
</head>

<body>
    <div class="widget" onclick="this.style.width = newWidgetWidth + 'px';">
        Shrink me
    </div>
    <div class="altwidget" onclick="this.style.width = newAltWidgetWidth + 'px';">
        Grow me
    </div>
</body>
</html>