Vragabond, you are a breath of fresh air! Not only did you stay on topic instead of simply criticizing me, but you gave a constructive piece of information - a suggestion of semantically-pleasing simple markup. [See my updated wraptest.html file - sections labeled "(Labels)" include that type of markup instead of spans.] Chrome and Safari are now behaving nicely with no special care in the markup's whitespace. The only remaining problem child is... drumroll... IE! (Was anyone surprised?) I haven't tested IE9, but 7 and 8 fail to wrap properly unless I remove all spaces from between the elements inside the label tag, which should have nothing to do with the issue. Any additional thoughts are welcome.
I also just now noticed that in all cases (even Firefox), there is no newline after the closing tag of the <h3> - shouldn't that be a block element? That problem doesn't happen in my real code, probably because there are other elements between the </h3> and the first label/input, but I find it a bit of a mystery in my test file.
audiopro said:
You still don't say what type of site it is so it makes it hard to suggest a strategy.
I tried to answer when you first asked, but it is too complex and flexible to be explained with a simple soundbite (in fact, this monstrosity needs a name other than "Karen's database", but so far it defies labeling in that way also). Plus, I never asked you to "suggest a strategy", although you and Chris have felt complelled to do so anyway. Although it's off-topic, I'll try again to describe it for you: I am a missionary in Japan, and this database was originally designed to keep track of the people we know through our ministry, including communications with them, events they attended, and other related information. Since then it has expanded to be used by two churches, a prayer movement group, a resource production ministry, a child sponsorship charity, the Franklin Graham Festival that happened here last year, and most recently, a disaster relief volunteer network. For each of those applications, different aspects of the data are more important than others, and the reporting needs are quite varied - hence the level of user customization that it is capable of. Plus, the interface language is switchable between Japanese and English, so all the titles, field labels, and other text can change length. The database has 23 tables, and the interface is made up of 71 PHP files that interact with the database and produce HTML/Javascript code. Since you feel the urge to critique it even though you have not seen it, I'll give you a glimpse of one page - I displayed the person page showing my husband's info in the disaster relief network's database (since that copy has the newest code, including even Vragabond's label syntax in one spot), saved the HTML, slightly sanitized the personal information, and uploaded it to
I don't want to leave it up forever, but for a few days you are welcome to take a look at it. The interface is in the midst of a major overhaul (as I said early in this thread), and I'm sure this code fails validation and breaks all kinds of conventions you hold dear, but I'm only doing this as a part-time, volunteer effort and have developed it piecemeal over the last ten years - I don't have time to make it perfect, so I just make it work.
audiopro said:
The way we got round it was the categories are in a drop down list and there is an option to suggest a new one. The new ones have to be approved by the site admins and that is a simple one click process in an admin screen. Initially there were many categories being added but now it is just a few per month.
That's a nice idea - I would have to implement it for not just categories, but also contact types, events for attendance records, and donation types, and I would need to make allowances for temporary immediate category needs, because small volunteer groups don't always have people available to do admin (at the moment I'm the admin for all but one of the installations, but I don't want to do that kind of hand-holding) and categories are designed to be used for temporary holding places as well as long-term organization. But when I get a little more buffer time I'll look into implementing something like that.