Jump to content

Wickham

Advanced Member
  • Posts

    1,114
  • Joined

  • Last visited

  • Days Won

    5

Posts posted by Wickham

  1. IE8 RC1 has been available to general public since Monday.

     

    It's cured four problems I had:-

     

    CSS non-javascript drop down menus now work smoothly without the mouse losing contact when moving from the top level to the drop down part.

     

    Clamshell menu works better too.

     

    I had a problem with a form that was supposed to return a viewer to the form input again after an error in inputting (say an empty box or a number outside the limits allowed) after he used the back button but IE8 beta 2 didn't do anything on the first click but went back to a previous page on a second click of the back button, but RC1 is OK.

     

    IE scrollbar colors now work.

  2. Always validate here:-

    http://validator.w3.org/

     

    I got your page to validate here:-

    br />    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
    
    
    
    Welcome to William Design
              content="text/html; charset=utf-8"/>
    
    type="text/css" />
    
    
    
    
    
    
    
    
    
    
    
    about
    portfolio
    contact
    
    
    
    
    
    
    
    
    
    
    
    
    
    

     

    but it still doesn't make much sense and as said before, without the images it's difficult to get the whole picture, an online link helps as we can download it all.

     

    You say you can't click the images, but they aren't links which would need this code:-

    image.jpg

     

    XHTML requires images,

    ,


    and meta tags and form input tags to close /> not just >
  3. There really isn't any alternative to starting from scratch.

     

    Try to make pages have a similar structure so that you can use one page as a template for the others and it gives the site some coherence.

     

    Use PHP "includes" for chunks of code that repeat on several pages, like a header, logo, menu, footer or sidebar, then you only have to alter one page and it gets altered in all of them. See Stefan's PHP videos for this (top right of this page).

     

    Use a separate stylesheet for as many styles and items like margins and padding as you can and insert ids and classes on the pages, then again, if you alter one style in the stylesheet it changes all the pages.

  4. There are some useful links for tutorials and other sites here:-

    http://w ww.wickham43.net/links.php

     

    The text at the top left is in a td tag 290px wide and there is an image on the left of it photo-box.png while the table is 500px wide.

    http://www.nurturewithnature.com/newsite/images/intention/photo-box.png

    which is just a blue panel with nothing in it or on it. Firefox and IE7 both show the text to the right of it. The main block of text below is in a td tag colspan="2" which it should be to cover the combined width of the image and text above.

     

    I can't see anything wrong with your link colors, they all show the normal, visited and hover colors for me. The link (normal) color is blue and the visited is purple and the hover is pink. Perhaps they show the visited color because you have visited those pages! They may show differently in other browsers because you have NOT visited the other pages with those browsers. Your codes look correct (you could add a:active and a:focus if you wanted to.).

  5. If you look at the bottom of the left side you will see that there is space between one block of text and the lowest block of text in Firefox but very little space in IE7 (where the image shows).

     

    This could be because IE has greater font size and spacing between paragraphs than Firefox so it's using more height and expanding the td tags in height so the proper background image has not got enough height.

     

    Try reducing the amount of text and see if the problem goes away.

     

    You will have difficulty using tables; it would be preferable to recode the page using divs and CSS but this will take some time. Alternatively you could try to set p tag top and bottom margins, font sizes and line-heights so that they are the same in IE and Firefox but it may not be enough if you have the td tags completely full of text.

     

    Edit: I cut out a large amount of text in the main block of text lower left which has the background-image showing underneath and it did reduce the amount of image showing.

  6. It's probably because the p tag that it's inside is only using as much width as it needs so the image in centering in a space which is just the same width and set on the left.

     

    Add a width: 100%; to the p tag and see if that cures it.

     

    Where to find us

     

    and just for safety add the image width and height to the class:-

    img.center {

    display: block;

    margin-left: auto;

    margin-right: auto;

    width: 450px; height: 319px;

    }

  7. I made a mistake with my edit above using /* instead of

     

     

    I really thought I knew my CSS until I found out absolute and relative positioning and floats are not the best way to go.

     

    Relative positioning and floats ARE the way to go in my opinion but position: absolute is useful sometimes INSIDE position: relative divs.

  8. Your div#stats is inside div#header_user and stays in the same position relative to div#header_user when the resolution changes, but div#side_nav is not inside div#body so it moves to a different position at different resolutions. Change the closing tag and see if it does what you want:-

    ..............

    The Land of a Thousand Dreams

    /* moved below*/

     

    If this doesn't work, I would change every div from position: absolute to position: relative and set them all related to each other. I don't really like the way you have so many nested position: absolute divs.

  9. It's javascript and the js file says

    jQuery 1.1.2 - New Wave Javascript

    *

    * Copyright © 2007 John Resig (jquery.com)

    * Dual licensed under the MIT (MIT-LICENSE.txt)

    * and GPL (GPL-LICENSE.txt) licenses.

    *

    * $Date: 2007-02-28 12:03:00 -0500 (Wed, 28 Feb 2007) $

    * $Rev: 1465 $

    */

    see if you can find something for that with Google.

     

    Hotscripts have lots of javascript slideshows

    http://www.hotscripts.com/JavaScript/Scripts_and_Programs/index.html

    probably in image effects or visual effects like this selection of 57

    http://www.hotscripts.com/JavaScript/Scripts_and_Programs/Image_Effects/Slide_Shows/index.html

     

    Also Google Lightbox.

  10. It's very flexible, you can do all the ways you suggested.

     

    Most pages are a basis of HTML 4.01 (or XHTML 1.0) with CSS, then may have javascript parts inside and may also have parts PHP coded like a header or form processing, etc. Pages need a .html extension with or without javascript but must have a .php extension if there is any PHP.

     

    You can have a page that is all PHP, for instance a php include for doctype, html tags and head section, and other php includes for the header, content, menu and footer so that nothing on the page is outside a php include, but this is unusual.

     

    Falkencreative beat me by a few minutes :D I must type quicker.

  11. What you look at in the browser is what it will "really look like" on a website. It will not change between your local machine and putting it on a server.

     

    ...........except when using Dreamweaver, apparently, as it sometimes doesn't display the code correctly until you look at it in IE, Firefox, etc. (locally or online) but otherwise the comment is true.

  12. The conditional statements should be after the main stylesheet link, as you were told.

     

    Look at the head section of my example. Remember that there is a space between IE and 7

     

    gte means greater than or equal to and lte means less than or equal to.

     

    Set the main stylesheet to work in Firefox (and it will probably be OK in Opera and Safari) then put only the minum styles in the conditional comment; if you have a style in the main stylesheet which has width, height, color, padding and margins but only the margin needs to be different in IE7, then only put that in the conditional comment. Any further styles in the markup div tags, etc. (inline styles) will take precedence over any styles in stylesheet or conditional comments.

     

    If you have several conditional comments, say for IE6 and IE7 like I have, they can be in any order as long as both are after the main stylesheet link.

  13. If you want to put a border around the whole h tag or p tag, then you need to add a width as Susie said.

     

    When you said a selection of text, I thought you meant just part of the text in a heading, and so I did a test with a span tag:-

    CSS:-

    .border { border: 2px solid red; line-height: 1.4; }

    .border2 { border: 2px solid red; width: 400px; text-align: center; }

     

    Markup:-

     

    The text inside the span tags has a border.

    The text has a border around all of it.

    The text inside the span tags has a border.

     

    What I found was that the first and last examples with the span tag only produced side borders, not top or bottom borders, until I added line-height to the style, which varied according to the text size, (unless your style for the whole page in the body style already includes a suitable line-height). The border needs a bit extra line-height in some circumstances. It does not need a width as it just flows inside the p or h tag.

     

    The second example applying the border class to the whole h tag (or p tag) does not need a line-height adjustment but does need a width. You need to allow enough width in case someone increases text size and the text expands beyond the border, so centering the text is advisable.

  14. You don't need separate stylesheets if only a few styles are different.

     

    This code you show above

     

    is a stylesheet inside a conditional comment which only applies to IE7

     

    I used two conditional comments in my version, but not enclosing a separate stylesheet, just a few different styles between tags inside the conditional comments. It saves creating a separate file.

  15. I've found the answer. The problem as I said was that when someone enters 0 it's treated like Empty so all my different attempts made Empty the same text as 0, except one where the Empty and 0 produced different echo text, but swapped. I could have swapped the text but that would have been cheating.

     

    It was using elseif(strlen($rating) == 0) but 0 is false so I realised that if I made that elseif(strlen($rating) == 1) it would make it true, even though it's checking whether 0 is in the string. It can also be elseif(strlen($rating) == true).

     

    I also decided to change the order so that the more correct options were first and the Empty statement was last if there were no numbers and 0 was not a string 0. I also changed =1 (equal to or over 1) - after numbers over 10 have been rejected.

     

    >
    
    
    
    
    PHP test
    
    
    
    This is testing WampServer2.
    if(isset($_POST['sendit']))
    {
    $rating = $_POST['rating'];
    $item = $_POST['item'];
    if($rating > 10) 
    {echo "
    Rating must be equal to or less than 10.
    Use your back button to try again."; }
    elseif($rating >= 1) 
    {echo "
    You rated {$item} as {$rating} out of 10.
    Thank You.
    Use your back button to vote for another song.";}
    elseif(strlen($rating) == true)  //ie true not false 0 or elseif(strlen($rating) == 1)
    {echo "
    You rated {$item} as 0 out of 10.
    Thank You.
    Use your back button to vote for another song.";}
    elseif(empty($_POST['rating'])) 
    {echo "
    Nothing entered.
    Rating must be between 0 and 10 inclusive.
    Use your back button to try again."; }
    }
    else 
    { echo "
    Please submit form.";
    ?>
    </pre>
    <form action="test-form-conditional-statementf2.php" method="post">
    
    Song A
    Song B
    
    Rating (out of 10 please):  
    
    </form>
    <br>}<br>?><br><p>Other page content here.</p>
    <br><br><br><br

  16. With the code I've got in post 3, with the Empty statement first, using elseif($rating == 0) for the second statement the 0 input is treated like an empty box and echos

    Rating must be between 0 and 10 inclusive.

    Use your back button to try again.

     

    which is the incorrect text for 0 input but it's correct for Empty box input. Edit: my guess is that the 0 statement would treat 0 as a number (not false) but the processor gets to the Empty statement first where it treats 0 as Empty (Empty is true - there is no input) and echos the Empty text "Try Again" and stops and never reaches the 0 statement.

     

    It's the same using if(strlen($rating) == 0)

     

    If I reverse the order and put the Empty statement second using if($rating == 0) for the 0 statement first I get

    You rated Song 1 as 0 out of 10.

    Thank You.

    Use your back button to vote for another song.

     

    for both a 0 input (correct) and an empty box input (wrong - it must now be treating an empty box as Empty - there is an input of 0 which is now a number therefore Empty is false).

     

    If i use if(strlen($rating) == 0) for the first 0 statement both empty and 0 inputs wrong, they have echo text swapped.

     

    I haven't tried lwsimon's solution yet.

  17. Yes I could, but I'm trying to learn. I realise that 0 is treated as false in Boolean so your code gets one part of the code working to make it true but for some reason the Empty statement and the 0 statement are linked and give the same result so depending on the order, one of them is wrong.

     

    Somewhere I need to convert a true to false or vice versa.

  18. OK, It works on its own, I had it in the wrong order before.

     

    However, it's now confused with the Empty situation. If I have the 0 statement first:-

    $rating = $_POST['rating'];

    $item = $_POST['item'];

    if($rating == 0)

    {echo "

    You rated {$item} as 0 out of 10.

    Thank You.

    Use your back button to vote for another song.

    ";}

    elseif(empty($_POST['rating']))

    {echo "

    Rating must be between 0 and 10 inclusive.

    Use your back button to try again.

    "; }

    elseif($rating > 10)

    {echo "

    Rating must be equal to or less than 10.

    Use your back button to try again.

    "; }

    elseif($rating

    {echo "

    You rated {$item} as {$rating} out of 10.

    Thank You.

    Use your back button to vote for another song.

    ";}

    }

    else ..........

     

    Someone entering 0 gets the "0 out of ten" (correct) but someone submitting an empty input box also gets "0 out of 10 Thank You" instead of Try Again.

     

    If I put the Empty situation first:-

     

    if(empty($_POST['rating']))

    {echo "

    Rating must be between 0 and 10 inclusive.

    Use your back button to try again.

    "; }

    elseif($rating == 0)

    {echo "

    You rated {$item} as 0 out of 10.

    Thank You.

    Use your back button to vote for another song.

    ";}

     

    then someone entering an empty box gets Try Again but someone entering 0 also gets Try Again, so the first conditional statement sets the value for the next or to put it another way, once the 0 is a number the Empty statement also treats an empty box as a number 0.

    >
    
    
    
    
    PHP test
    
    
    
    This is testing WampServer2.
    if(isset($_POST['sendit']))
    {
    $rating = $_POST['rating'];
    $item = $_POST['item'];
    if(empty($_POST['rating'])) 
    {echo "
    Rating must be between 0 and 10 inclusive.
    Use your back button to try again."; }
    elseif($rating == 0) 
    {echo "
    You rated {$item} as 0 out of 10.
    Thank You.
    Use your back button to vote for another song.";}
    elseif($rating > 10) 
    {echo "
    Rating must be equal to or less than 10.
    Use your back button to try again."; }
    elseif($rating {echo "
    You rated {$item} as {$rating} out of 10.
    Thank You.
    Use your back button to vote for another song.";}
    }
    else 
    { echo "
    Please submit form.";
    ?>
    </pre>
    <form action="test-form-conditional-statementa.php" method="post">
    
    Song 1
    Song 2
    
    Rating (out of 10 please):  
    
    </form>
    <br>}<br>?><br><p>Other page content here.</p>
    <br><br><br

  19. I've got a form where people will be able to enter a vote from 0 to 10 inclusive. So far I've dealt with the empty box (rejected), entries more than 10 (rejected) and entries 1 to 10 (accepted) but 0 gets treated as an empty box because I can see the echo statement it produces. How do I get 0 in the form treated as a true number?

     

    Here's a snippet

     

    if(empty($_POST['rating']))

    {echo "

    Rating must be between 0 and 10.

    Use your back button to try again.

    "; }

    elseif($rating > 10)

    {echo "

    Rating must be less than 10.

    Use your back button to try again.

    "; }

    elseif($rating

    {echo "

    You rated {$item} as {$rating} out of 10.

    Thank You.

    Use your back button to vote for another song.

    ";}

    elseif($rating = 0)

    {echo "

    You rated {$item} as {$rating} 0 out of 10.

    Thank You.

    Use your back button to vote for another song.

    ";}

    }

    else

    { echo "

    Please submit form.

    ";.........................

     

    The last one elseif($rating = 0) doesn't work nor does elseif($rating == 0)

     

    The form works well except for rejecting 0.

  20. I've rehashed it here:-

    http://w'>http://w ww.wickham43.com/forumposts/sarinalayouthome2090121b.html

    and the css file here

    http://w ww.wickham43.com/forumposts/sarinalayoutstyles090121b.css

     

    But it really has been hacked about and I won't accept the quality for one of my sites, but it works in IE6, IE7, Firefox, Opera and Safari and has no horizontal scrollbar in IE7.

×
×
  • Create New...